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

本文介绍了如何在微信小程序中创建一个启动时显示3秒倒计时广告的页面。通过在app.json中添加欢迎页路径,配合WXML、WXSS和JS文件实现页面结构和逻辑。页面使用flex布局,动态更新时间,并在计时结束时通过wx.reLaunch方法跳转到首页。
摘要由CSDN通过智能技术生成

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

【微信小程序-原生开发】实用教程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 对应,即在页面渲染完成后执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朝阳39

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值