• 应用
  • 页面
  • 小程序配置
  • 自定义组件
  • 基础库
  • 场景值
  • 错误码
  • npm 功能
  • SJS 语法参考
  • 页面
    收藏
    我的收藏

    page

    page(params) 是进入某个页面的时候会执行的页面入口函数,params 是一个 object 类型的参数,定义了页面初始数据,生命周期函数,事件处理函数等。

    params 参数说明

    属性
    类型
    描述
    data
    Object
    页面的初始数据
    onLoad
    Function
    生命周期函数--监听页面加载
    onReady
    Function
    生命周期函数--监听页面初次渲染完成
    onShow
    Function
    生命周期函数--监听页面显示
    onHide
    Function
    生命周期函数--监听页面隐藏
    onUnload
    Function
    生命周期函数--监听页面卸载
    onResize
    Function
    生命周期函数--监听页面尺寸变化,在直播小程序卡片、POI 详情页商品入口的七分屏场景中使用。
    onPullDownRefresh
    Function
    页面相关事件处理函数--监听用户下拉动作
    onReachBottom
    Function
    页面上拉触底事件的处理函数
    onShareAppMessage
    Function
    分享时触发,该钩子支持异步能力,允许在函数内 await Promise,具体可参考转发和挂载概述
    onUploadDouyinVideo
    Function
    发布抖音视频时触发,该钩子支持异步能力,允许在函数内 await Promise,具体可参考转发和挂载概述
    onLiveMount
    Function
    在抖音直播中挂载小程序锚点时触发,该钩子支持异步能力,允许在函数内 await Promise,具体可参考转发和挂载概述
    onPageScroll
    Function
    页面滚动触发事件的处理函数
    其他
    Any
    开发者可以添加任意的函数或数据到 object 参数中,在页面的函数中用 this 可以访问。
    基础库版本 2.91.0 以下,如果不注册 onShareAppMessage,右上角胶囊按钮菜单里的分享按钮显示逻辑见:关于“更多面板分享按钮”显示逻辑的变更

    示例代码

    初始数据

    初始化数据将作为页面的第一次渲染。data 将会以 JSON 的形式由逻辑层传至渲染层,所以其数据必须是可以转成 JSON 的格式:字符串,数字,布尔值,对象,数组。
    渲染层可以通过 TTML 对数据进行绑定。

    示例代码

    <!-- index.ttml --> <view>{{text}}</view> <view>{{array[0].msg}}</view>
    // index.js Page({ data: { text: "init data", array: [{ msg: "1" }, { msg: "2" }], }, });

    生命周期回调函数

    onLoad 生命周期函数会接受到当前页面打开时设置的 query 参数。比如:
    // 页面url是'page/index/index?a=1&key=value' ... onLoad: function (options) { console.log(options) // {a: '1', key: 'value'} }
    页面生命周期的更多信息,请参见页面生命周期

    事件处理函数

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

    示例代码

    <!-- index.ttml --> <view bindtap="viewTap"> click me </view>
    // index.js Page({ viewTap: function () { console.log("view tap"); }, });

    更新页面渲染 setData()

    字段
    类型
    必填
    描述
    data
    Object
    这次要改变的数据
    callback
    Function
    回调函数
    参数 data 以 key,value 的形式表示将 this.data 中的 key 对应的值改变成 value。 callback 是一个回调函数,在这次 setData 对界面渲染完毕后调用。

    示例代码

    <!--index.ttml--> <view>{{text}}</view> <button bindtap="changeText">Change normal data</button> <view>{{num}}</view> <button bindtap="changeNum">Change normal num</button> <view>{{array[0].text}}</view> <button bindtap="changeItemInArray">Change Array data</button> <view>{{object.text}}</view> <button bindtap="changeItemInObject">Change Object data</button> <view>{{newField.text}}</view> <button bindtap="addNewField">Add new data</button>
    //index.js Page({ data: { text: "init data", num: 0, array: [{ text: "init data" }], object: { text: "init data", }, }, changeText: function () { // this.data.text = 'changed data' // 这样无法更新UI this.setData({ text: "changed data", }); }, changeNum: function () { this.data.num = 1; this.setData({ num: this.data.num, }); }, changeItemInArray: function () { this.setData({ "array[0].text": "changed data", }); }, changeItemInObject: function () { this.setData({ "object.text": "changed data", }); }, addNewField: function () { this.setData({ "newField.text": "new data", }); }, });

    分屏场景页面尺寸变化

    直播小程序卡片、POI 详情页商品入口场景下调起七分屏时触发。详见响应显示区域变化

    getCurrentPages()

    getCurrentPages() 函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。