小程序Page页面详解

在index.js文件中创建一个Page函数用来注册页面,接受一个Object参数,包括:

data(Object)            //页面初始化数据
onLoad(Fuction)         //生命周期函数--监听页面加载
onReady(Fuction)        //生命周期函数--监听页面初次渲染完成
onShow(Fuction)         //生命周期函数--监听页面显示
onHide(Fuction)         //生命周期函数--监听页面隐藏
onUnload(Fuction)       //生命周期函数--监听页面卸载
onPullDownRefresh(Fuction)  //页面相关事件处理函数--监听用户下拉动作
onReachBottom(Fuction)      //页面上拉触底事件的处理函数
onShareAppMessage(Fuction)  //用户点击右上角转发
onPageScroll(Fuction)       //页面滚动触发事件的处理函数
其他(Any)                   //开发者可以添加任意的函数或数据到 object 参数中,在页面的函数中用 this 可以访问

初始化数据Data

初始化数据将作为页面的第一次渲染。data 将会以 JSON 的形式由逻辑层传至渲染层,所以其数据必须是可以转成 JSON 的格式:字符串,数字,布尔值,对象,数组。简单的来讲就是所用数据的定义和初始化。
渲染层可以通过 WXML 对数据进行绑定。即在Data中定义的数据需要通过wxml文件进行框架的连接。
eg:
wxml

<view class="can_box">
    <button type="{{button_type}}" size="default" bindtap="can_str">{{button_text}}</button>
</view>

js

    data:{
        button_text:'连接设备',
    },

生命周期函数

  • onLoad,onShow函数
    初始化,只调用一次,为小程序运行时打开的第一个页面。

  • onReady函数
    一个页面只会调用一次,表示该页面初次渲染完成,可以与视图层交互

  • onHide函数
    页面隐藏,调用 API wx.navigateTo 或使用组件 < navigator open-type=”navigateTo”/ >时打开新页面

  • onUnload函数
    页面重定向:调用 API wx.redirectTo 或使用组件 < navigator open-type=”redirectTo”/ >
    页面返回:调用 API wx.navigateBack 或使用组件< navigator open-type=”navigateBack”>或用户按左上角返回按钮
    重启动:调用 API wx.reLaunch 或使用组件 < navigator open-type=”reLaunch”/>

事件处理函数

在wxml中添加事件绑定,如果触发该事件则执行此函数
eg:
wxml

    <view class="control_link">
        <button bindtap="steps_control">读取步数</button>
    </view>

js

    steps_control:function(){
        var that = this;
        var steps_data = that.data.steps_data;
//读取数据
        wx.readBLECharacteristicValue({
            deviceId: that.data.devices_data.deviceId,
            serviceId: steps_data.service.uuid,
            characteristicId: steps_data.characteristic.uuid,
            success: function(res){
                console.log('读取步数', res);
                that.setData({
                    steps_data_count:"..."
                });
            }
        });
    },

Page.prototype.setData()
setData 函数用于将数据从逻辑层发送到视图层(异步),同时改变对应的 this.data 的值(同步)。

setData()参数:data(Object),callback(Function).
object 以 key,value 的形式表示将 this.data 中的 key 对应的值改变成 value。 callback 是一个回调函数,在这次setData对界面渲染完毕后调用。
其中 key 可以非常灵活,以数据路径的形式给出,如 array[2].message,a.b.c.d,并且不需要在 this.data 中预先定义。

注意:

  1. 直接修改 this.data 而不调用 this.setData 是无法改变页面的状态的,还会造成数据不一致
  2. 单次设置的数据不能超过1024kB,请尽量避免一次设置过多的数据。

wxml

    <view class="control_link">
        <button bindtap="steps_control">读取步数</button>
    </view>

js

    steps_control:function(){
        var that = this;
        var steps_data = that.data.steps_data;
//读取数据
        wx.readBLECharacteristicValue({
            deviceId: that.data.devices_data.deviceId,
            serviceId: steps_data.service.uuid,
            characteristicId: steps_data.characteristic.uuid,
            success: function(res){
                console.log('读取步数', res);
                that.setData({
                    steps_data_count:"..."
                });
            }
        });
    },

猜你喜欢

转载自blog.csdn.net/u013539952/article/details/77949284
今日推荐