注册小程序app.js
每个小程序都需要在 app.js 中调用 App 方法注册小程序示例,绑定生命周期回调函数、错误监听和页面不存在监听函数等。
// app.js
App({
onLaunch (options) {
// Do something initial when launch.
},
...
globalData: 'I am global data'
})
整个小程序只有一个 App 实例,是全部页面共享的。开发者可以通过 getApp 方法获取到全局唯一的 App 示例,获取App上的数据或调用开发者注册在 App 上的函数。
// xxx.js
const appInstance = getApp()
console.log(appInstance.globalData) // I am global data
App参数
注册页面page.js
- Page()定义在页面的js文件中,Page() 函数用来注册一个页面。
- Page()函数接受一个 object 参数,其指定页面的初始数据、生命周期函数、事件处理函数等。
object参数为:
data初始化数据属性:
初始化数据将作为页面的第一次渲染。data 将会以 JSON 的形式由逻辑层传至渲染层,所以其数据必须是可以转成 JSON 的格式:字符串,数字,布尔值,对象,数组。
- 说明:data属性里面传入对象用于绑定数据,在视图层显示。如:
Page({
data: {
text: 'init data',
array: [{msg: '1'}, {msg: '2'}]
}
})
视图层绑定显示数据:
通过{{ }}语法,例:
<view>{{text}}</view>
<view>{{array[0].msg}}</view>
Page中添加事件处理函数
除了初始化数据和生命周期函数,Page 中还可以定义一些特殊的函数:事件处理函数,也就是自定义方法。在渲染层可以在组件中加入事件绑定,当达到触发事件时,就会执行 Page 中定义的事件处理函数。示例代码:
<view bindtap="viewTap"> click me </view>
Page({
viewTap: function() {
console.log('view tap')
}
)
setData()
setData()将数据从逻辑层发送到视图层,同时改变对应的 this.data 的值。
注意:
1.直接修改 this.data 无效,无法改变页面的状态,还会造成数据不一致。
2.单次设置的数据不能超过1024kB,请尽量避免一次设置过多的数据。
不能通过this.data = {text : “hello”}这样来改变
viewTap: function() {
this.setData({
text: 'Set some data for updating view.'
})
}