【微信小程序-原生开发】实用教程04-启动/欢迎/首屏广告页(含倒计时、添加文字、rpx、定义变量和函数、读取变量、修改变量、wx.reLaunch 页面跳转、生命周期 onReady等)

简介: 【微信小程序-原生开发】实用教程04-启动/欢迎/首屏广告页(含倒计时、添加文字、rpx、定义变量和函数、读取变量、修改变量、wx.reLaunch 页面跳转、生命周期 onReady等)

开始前,请先完成自定义底部导航的开发,详见

【微信小程序-原生开发】实用教程03-自定义底部导航(含自定义tabBar导航高亮需点击两次的解决方案)

https://blog.csdn.net/weixin_41192489/article/details/128707606

需求描述

手机上的app启动时,通常会先展示一个倒计时 3 秒的广告页(更良心一点的,可能是启动页,或欢迎页)

代码实现

app.json

新增欢迎页路径,并放在第一行(小程序启动后,默认展示第一个路径)

"pages/welcome/index",

保存后,pages 文件夹会自动生成对应的 welcome 页的四个文件

pages\welcome\index.wxml

<view class="topBox">
  <view class="jumpBox">
    <view class="time">{{time}}</view>
    <view bind:tap="gotoIndex">跳过</view>
  </view>
</view>

<view class="slogan slogan_left">
  诚挚缘分 
</view>
<view  class="slogan slogan_right">
  成就梦想
</view>

标签 view

功能同 html 中的 div,就是一个默认撑满整行的盒子。

{{ }}

与 vue 的语法相同,用于在页面上渲染变量

bind:tap

  • bind: 为绑定
  • tap 为移动端的点击事件

所以 bind:tap 的含义即绑定点击事件,同 vue 的 @click

( gotoIndex 是 js 中定义的事件函数,详见下文 js 中的代码 )

pages\welcome\index.wxss

/* pages/welcome/index.wxss */
.topBox {
  display: flex;
  justify-content: flex-end;
  padding-top: 20rpx;
  padding-right: 20rpx;
}
.jumpBox {
  color: white;
  background: rgba(182, 179, 179, 0.911);
  display: flex;
  align-items: center;
  border-radius: 30rpx;
  padding: 10rpx 20rpx;
}
.time{
  padding-right: 10rpx;
}
.slogan {
  font-size: 80rpx;
  font-weight: bold;
  color: #027CBE;
  line-height: 2;
}
.slogan_left {
  padding-left: 60rpx;
}
.slogan_right {
  text-align: right;
  padding-right: 60rpx;
}


wxss 的语法和css基本相同,只是将单位px改为 rpx,因其能自适应不同宽度和设备像素比的移动端设备。

pages\welcome\index.js

// 定义定时器 timer
let timer = null
Page({
  data: {
    // 页面读秒
    time: 3,
  },
  // 事件函数--跳转到首页
  gotoIndex: function () {
    // 清除定时器
    clearInterval(timer)
    // 跳转到首页 - 关闭所有页面后,打开指定页面
    wx.reLaunch({
      url: '/pages/index/index'
    })
  },
  // 生命周期--页面渲染完成时执行
  onReady() {
    // 开始倒计时
    timer= setInterval(() => {
      // 每过 1 秒,倒计时减一
      this.setData({
        time: this.data.time - 1
      })
      // 当倒计时为0时,跳转到首页
      if(this.data.time===0){
        this.gotoIndex()
      }
    }, 1000)
  },
})

定义变量

  data: {
    time: 3,
  },


与 vue 不同,无需 return。

读取变量

this.data.time

与 vue 不同,this 代表的当前页面实例,需从 data 属性中读取变量

修改变量的值

      this.setData({
        time: this.data.time - 1
      })

定义函数

  gotoIndex: function () {
  
  },

通常用于绑定事件,当然,也可以用于封装特定的业务逻辑。

类似 vue 中 methods 里写的方法,留心写法的差异!

调用函数

this.gotoIndex()

与 vue 相同

页面跳转 wx.reLaunch

会先关闭所有页面后,再打开指定页面

    wx.reLaunch({
      url: '/pages/index/index'
    })
  • url 的值需和 app.json中定义的页面路径对应,注意 pages 前有 /

生命周期 onReady

小程序的页面渲染和 vue 一样,也有完整的生命周期

onReady 与 vue 的 mounted 对应,即在页面渲染完成后执行。

目录
相关文章
|
6月前
|
JSON 机器人 API
gewe微信机器人搭建教程
GeWe开放平台是基于 微信开放平台的二次封装API服务,开发者可以使用本服务来处理微信中的各种事件,并可以通过后台调用对应的 API 来驱动微信自动执行任务,如自动收发消息、自动化应答、自动群邀请、群管理等,封装了 RPA技术流程,简化开发者二次开发难度,提供了开发者与微信对接的能力,使用简单,操作快捷,支持多种语言接入。
346 17
|
9月前
|
人工智能 开发框架 机器人
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
AstrBot 是一个开源的多平台聊天机器人及开发框架,支持多种大语言模型和消息平台,具备多轮对话、语音转文字等功能。
5289 38
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
|
11月前
|
存储 小程序 Python
农历节日倒计时:基于Python的公历与农历日期转换及节日查询小程序
### 农历节日倒计时:基于Python的公历与农历日期转换及节日查询小程序 该程序通过`lunardate`库实现公历与农历的日期转换,支持闰月和跨年处理,用户输入农历节日名称后,可准确计算距离该节日还有多少天。功能包括农历节日查询、倒计时计算等。欢迎使用! (239字符)
702 86
|
8月前
|
存储 API UED
鸿蒙特效教程02-微信语音录制动画效果实现教程
本教程适合HarmonyOS初学者,通过简单到复杂的步骤,一步步实现类似微信APP中的语音录制动画效果。
333 0
鸿蒙特效教程02-微信语音录制动画效果实现教程
|
小程序
跨端技术问题之为什么在微信小程序中静态转义出didUpdate生命周期可靠程度低
跨端技术问题之为什么在微信小程序中静态转义出didUpdate生命周期可靠程度低
|
缓存 小程序 UED
如何利用小程序的生命周期函数实现数据的加载和更新?
如何利用小程序的生命周期函数实现数据的加载和更新?
315 4
|
小程序 UED 开发者
小程序的生命周期函数
小程序的生命周期函数
475 1
|
小程序 编译器 数据安全/隐私保护
小白保姆级教程:微信公众号开发,从0到1
【8月更文挑战第8天】小白保姆级教程:微信公众号开发,从0到1
3630 3
小白保姆级教程:微信公众号开发,从0到1
详细教程:扫码提交表单后,数据直接推送到企业微信、钉钉、飞书群聊
在草料制作的表单中,填表人扫码填写并提交数据后,这些信息可以立即通过企业微信、钉钉或飞书自动推送到相应的群聊中,实现即时共享和沟通,提升团队协作效率。
536 2
|
算法 安全 数据安全/隐私保护
支付系统---微信支付09------数字签名,现在Bob想要给Pink写一封信,信件的内容不需要加密,怎样能够保证信息的完整性,使用信息完整性的主要手段是摘要算法,散列函数,哈希函数,H称为数据指纹
支付系统---微信支付09------数字签名,现在Bob想要给Pink写一封信,信件的内容不需要加密,怎样能够保证信息的完整性,使用信息完整性的主要手段是摘要算法,散列函数,哈希函数,H称为数据指纹