微信小程序 笔记7 Page对象

Page对象

存在于每个页面的js里面,Page(Object)函数用来注册一个页面。接受一个 Object 类型参数,其指定页面的初始数据、生命周期回调、事件处理函数等(和app.js里面东西功能很像)

数据渲染

data属性渲染

  • 需要放在模板中进行渲染的数据,需要放在Page对象的data属性中。
  • 放到data中的值,只能使用可以JSON序列化的:字符串,数字,布尔值,对象,数组。否则将不会渲染。例如:function

什么叫不能序列化的无法渲染呢?比如这个例子:

// pages/QQ/QQ.js
function box()
{
  return "我是box返回的"
}
Page({

  /**
   * 页面的初始数据
   */
  data: {
    info:box
  },
//...

这种是无法正常执行的。

通过function改变data属性渲染

  • 直接修改 this.data 而不调用 this.setData 是无法改变页面的状态的,还会造成数据不一致。
  • 其中key可以以数据路径的形式给出,支持改变数组中的某一项或对象的某个属性,如 array[2].message,a.b.c.d,并且不需要在 this.data中预先定义。

生命周期函数

页面内部的js配置。

onLoad(Object query)

等同于app.js的onLaunch(options),只是一个全局一个局部。

onShow(options)

补充一点:5分钟放在后台不访问就自动卸载掉了

调用时机:页面显示/切入前台时触发。

onReady()

页面初次渲染完成时触发。一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互了。

注意和onShow()加载内容的区别:onReady()主要是针对导航栏和tabBar(最上面最下面两块)

onUnload()

调用时机:页面卸载时触发。如redirectTo或navigateBack到其他页面时

具体来说:当进入一个新的页面时,会将页面卸载掉,调用onUnload()

// pages/me/me.js
Page({

  /**
   * 页面的初始数据
   */
  data: {

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log("Onload:开始加载初始信息")
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    console.log("onReady:修改导航栏文字")
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    console.log("onShow:页面内容开始显示")
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    console.log("onHide:进入后台")
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    console.log("onUnload:页面卸载")
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },
//...

路由

在小程序中所有页面的路由全部由框架进行管理。getCurrentPages()可以获取当前状态下的页面栈

即:页面结构不发生变化,只是内容发生改变。

getCurrentPages()可以理解为一个数组,里面是之前走过的页面,放在数组里面。

也就是说,getCurrentPages()可以获取当前状态下的页面栈。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值