Object
类型参数,其指定页面的初始数据、生命周期回调、事件处理函数等。属性 | 类型 | 默认值 | 必填 | 说明 |
Object | - | - | 页面的初始数据 | |
function | - | - | 生命周期回调—监听页面加载 | |
function | - | - | 生命周期回调—监听页面显示 | |
function | - | - | 生命周期回调—监听页面初次渲染完成 | |
function | - | - | 生命周期回调—监听页面隐藏 | |
function | - | - | 生命周期回调—监听页面卸载 | |
function | - | - | 监听用户下拉动作 | |
function | - | - | 页面上拉触底事件的处理函数 | |
function | - | - | 用户单击右上角转发 | |
function | - | - | 页面滚动触发事件的处理函数 | |
function | - | - | 开发者拦截页面的默认返回时回调 | |
function | - | - | 当前是 tab 页时,单击 tab 时触发 | |
其他 | any | - | - | 开发者可以添加任意的函数或数据到 Object 参数中,在页面的函数中用 this 可以访问。这部分属性会在页面实例创建时进行一次深拷贝。 |
//index.jsPage({data: {text: "This is page data."},onLoad: function(options) {// Do some initialize when page load.},onShow: function() {// Do something when page show.},onReady: function() {// Do something when page ready.},onHide: function() {// Do something when page hide.},onUnload: function() {// Do something when page close.},onPullDownRefresh: function() {// Do something when pull down.},onReachBottom: function() {// Do something when page reach bottom.},onShareAppMessage: function () {// return custom share data when user share.},onPageScroll: function() {// Do something when page scroll},onResize: function() {// Do something when page resize},onTabItemTap(item) {console.log(item.index)console.log(item.pagePath)console.log(item.text)},// Event handler.viewTap: function() {this.setData({text: 'Set some data for updating view.'}, function() {// this is setData callback})},customData: {hi: 'MINA'}})
data
是页面第一次渲染使用的初始数据。data
将会以JSON
字符串的形式由逻辑层传至渲染层,因此data
中的数据必须是可以转成JSON
的类型:字符串,数字,布尔值,对象,数组。<view>{{text}}</view><view>{{array[0].msg}}</view>
Page({data: {text: 'init data',array: [{msg: '1'}, {msg: '2'}]}})
名称 | 类型 | 说明 |
query | Object | 打开当前页面路径中的参数 |
属性 | 类型 | 说明 |
scrollTop | Number | 页面在垂直方向已滚动的距离(单位px) |
参数 | 类型 | 说明 |
from | String | 转发事件来源 button:页面内转发按钮; menu:右上角转发菜单。 |
target | Object | 如果 from 值是 button,则 target 是触发这次转发事件的 button,否则为 undefined |
webViewUrl | String | |
string | 用户单击分享到哪里。 |
字段 | 类型 | 说明 | 默认值 |
title | string | 转发标题 | 当前小程序名称 |
path | string | 转发路径 | 当前页面 path ,必须是以 / 开头的完整路径 |
imageUrl | string | 自定义图片路径,可以是本地文件路径、代码包文件路径或者网络图片路径。支持 PNG 及 JPG。显示图片长宽比是 5:4。 | 使用默认截图 |
entryDataHash | string | 监听用户单击页面内转发按钮,只有带上该参数,才支持快速分享 | - |
string | 指定分享的类型 | "miniapp" |
取值 | 说明 |
0 | 分享到 QQ 好友 |
1 | 分享到 QQ 空间 |
2 | 从当前聊天窗口打开,快速分享到当前聊天窗口 |
3 | 分享到微信好友 |
4 | 分享到微信朋友圈 |
5 | 分享面板分享到最近联系人 |
6 | 分享到快捷分享好友列表 |
值 | 说明 |
"miniapp" | 以小程序的形式分享,title、path、imageUrl、entryDataHash 参数会生效 |
"picture" | 以图片的形式分享,imageUrl、entryDataHash 参数会生效 |
Page({onShareAppMessage(res) {if (res.from === 'button') {// 来自页面内转发按钮console.log(res.target)}return {title: '自定义转发标题',path: '/page/user?id=123'}}})
参数 | 类型 | 说明 |
index | String | 被单击 tabItem 的序号,从0开始 |
pagePath | String | 被单击 tabItem 的页面路径 |
text | String | 被单击 tabItem 的按钮文字 |
Page({onTabItemTap(item) {console.log(item.index)console.log(item.pagePath)console.log(item.text)}})
<view bindtap="viewTap"> click me </view>
Page({viewTap: function() {console.log('view tap')}})
Page({viewTap: function() {console.log('view tap')}})
setData
函数用于将数据从逻辑层发送到渲染层(异步),同时改变对应的 this.data
的值(同步)。字段 | 类型 | 必填 | 描述 |
data | Object | 是 | 此次要改变的数据 |
callback | Function | 否 | setData 引起的界面更新渲染完毕后的回调函数 |
Object
以 key: value
的形式表示,将 this.data
中的 key
对应的值改变成 value
。key
可以以数据路径的形式给出,支持改变数组中的某一项或对象的某个属性,如 array[2].message
,a.b.c.d
,并且不需要在 this.data 中预先定义。undefined
,否则这一项将不被设置并可能遗留一些潜在问题。<!--index.wxml--><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.jsPage({data: {text: 'init data',num: 0,array: [{text: 'init data'}],object: {text: 'init data'}},changeText: function() {// this.data.text = 'changed data' // 不要直接修改 this.data// 应该使用 setDatathis.setData({text: 'changed data'})},changeNum: function() {// 或者,可以修改 this.data 之后马上用 setData 设置一下修改了的字段this.data.num = 1this.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'})}})
App.onLaunch
的时候调用 getCurrentPages()
,此时 page
还没有生成。
本页内容是否解决了您的问题?