让你快速读懂微信小程序初始化数据

本文介绍了微信小程序中页面的基本知识,包括页面初始化数据、生命周期函数、事件处理函数、页面路由管理和setData设值函数的使用。重点讲解了data的设置、页面生命周期的各个阶段以及如何通过setData更新界面数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

微信小程序中基本知识

  • 每个页面文件夹里,都有一个页面对应的js文件;
  • 这个文件里的Page()函数用来注册页面;
  • 接受一个object参数,其指定页面的初始数据、生命周期函数、事件处理函数等页面的所有业务逻辑处理都放在这个文件里。

object参数说明:

属性描述
data页面的初始数据
onLoad监听页面加载
onReady监听页面初次渲染完成
onShow监听页面显示
onHide监听页面隐藏
onUnload监听页面卸载
onPullDownRefresh监听用户下拉动作
onReachBottom页面上拉触底事件的处理函数
onShareAppMessage用户单击右上角分享
onPageScroll页面滚动触发事件的处理函数
onTabItemTap当前是tab页时,点击tab时触发
其他开发者可以添加任意的函数或数据到object参数中,在页面的函数中用this可以访问

页面初始化数据

  • data为页面初始化数据;
  • 初始化数据将作为页面的第一次渲染;
  • data会以json的形式由逻辑层传到渲染层;
  • 其数据必须是可以转成json的格式:字符串、数字、布尔值、对象或数组;
  • 渲染界面可以通过WXML对数据进行绑定。

生命周期函数

  • onLoad页面加载:一个页面只调用一次,接收页面参数可以获取wx.navigateTo和wx.redirectTo及中的query。
  • onShow页面显示:每次打开页面都会调用一次。
  • onReady页面初次渲染完成:一个页面只调用一次,可和视图层进行交互,对界面的设置如wx.setNavigationBarTitle请在onReady之后设置。
  • onHide页面隐藏:当调用navigateTo或底部tab切换时调用。
  • onUnload页面卸载:当调用redirectTo或navigateBack的时候调用。

页面相关事件处理函数

  • onPullDownRefresh下拉刷新:监听用户下拉刷新事件,需要在config的windows选项中开启enablePullDownRefresh。当处理完数据刷新后,wx.stopPullDownRefresh可以停止当前页面的下拉刷新。
  • onShareAppMessage用户分享:只有定义了此事件处理函数,右上角菜单才会显示“分享”按钮,用户点击“分享”按钮的时候会调用此函数。此事件需要返回一个Object参数,用于自定义分享内容。

页面路由管理

微信小程序的页面路由都是由微信小程序框架来管理的,框架以栈的形式维护了所有页面。

栈:一种数据结构,只能在一端进行插入和删除操作,按“后进先出”的原则存储数据。

小程序页面交互也是通过栈来完成。小程序初始化时,新页面入栈;打开新页面时,新页面入栈;页面重定向时,当前页面出栈;页面返回时,页面不断出栈,直到新页面入栈;tab切换时,页面全部出栈,只留下新的tab页面;重新加载时,页面全部出栈,只留下新的页面。
注意事项:

  1. navigateTo,redirectTo只能打开非tabBar页面。
  2. switchTab只能打开tabBar页面。
  3. reLaunch可以打开任意页面。
  4. 页面底部的tabBar由页面决定,即只要是定义为tabBar的页面,底部都有tabBar。
  5. 调用页面路由带的参数可以在目标页面的onLoad中获取。

自定义函数

除了初始化数据和生命周期函数,Page中还可以定义一些特殊的函数:事件处理函数。在渲染层的组件中可以加入事件绑定。当达到触发事件时,就会执行Page中定义的事件处理函数。

setData设值函数

Page.prototype.setData()设值函数用于将数据从逻辑层发送到视图层,同时改变对应的this.data的值。setData()参数格式:接受一个对象,以key, value的形式表示将this.data中的key对应的值改变成value,其中key非常灵活,以数据路径的形式给出,如array[2].message,a.b.c.d,并且不需要在this.data中预先定义。

注意事项:直接修改this.data无效;无法改变页面的状态,还会造成数据不一致;单次设置的数据不能超过1024KB,尽量避免一次性设置过多的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值