在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
小程序的每个页面都是独立的,每个页面都必须有 page.js 和 page.wxhl 文件,page.json 和 page.wxss 文件非必要文件,注意如果创建 page.json 则至少保证有一个对大括号,否则IED报错。 page.js 管理该页面的逻辑事件。每个页面必须声明 Page() 方法。 Page() 用来注册页面,其包含一下属性: data 用于初始化数据;data 将会以 JSON 的形式由逻辑层传至渲染层,所以其数据必须是可以转成 JSON 的格式:字符串,数字,布尔值,对象,数组;这里的 data 充当model的角色。 注:Page() 中 若不声明 onShareAppMessage() 该页面则不可分享,只有声明 onShareAppMessage() 该页面才有 分享/转发 功能(就算onShareAppMessage()中什么都不写都可以) Page() 未声明 onShareAppMessage() 案例 Page() 声明 onShareAppMessage() 案例 // index/index.js Page({ data: { "user_name":"mirage", "user_skill":["javascript","jquery","angularjs","nodejs"] }, onLoad: function (options) {}, onReady: function () {}, onShow: function () {}, onHide: function () {}, onUnload: function () {}, onPullDownRefresh: function () {}, onReachBottom: function () {}, onShareAppMessage: function () {} }) // ----------------------------------- <!-- index/index.wxml --> <view class="box"> <text class="title">Hello World!</text> </view> <view class="userName"> user name : <text>{{user_name}}</text> </view> <view> user skill : <text class="item">{{user_skill[0]}}</text> / <text class="item">{{user_skill[1]}}</text> / <text class="item">{{user_skill[2]}}</text> / <text class="item">{{user_skill[3]}}</text> / </view> 生命周期函数
一个页面只会调用一次,可以在 onLoad 中获取打开当前页面所调用的 query 参数。
每次打开页面都会调用一次。
一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互。 对界面的设置,如wx.setNavigationBarTitle请在onReady之后设置。
当navigateTo或底部tab切换时调用。
当redirectTo或navigateBack的时候调用。 // index/index.js ============================== Page({ data: { "user_name":"mirage", "user_skill":["javascript","jquery","angularjs","nodejs"] }, onLoad: function (req) { console.log(req); }, toas:function(){ wx.navigateTo({ url: "../info/info?name=" + this.data.user_name + "&skill=" + this.data.user_skill }) } }) // info/info.js ============================== Page({ data: {}, onLoad: function (req) { this.setData({ name:req.name, skill:req.skill.split(',') }); } }) onLoad 的参数作为接受传递参数的对象。 页面相关事件处理函数
Page({ onShareAppMessage: function () { return { title: '自定义转发标题', path: '/page/user?id=123' } } }) Page.prototype.route(原型链字段)
Page.prototype.setData()
Page({ data: {}, onLoad: function (req) { // 通过 setData 获取异步加载参数 this.setData({ name:req.name, skill:req.skill.split(',') }); } }) setData() 参数格式 object 以 key,value 的形式表示将 this.data 中的 key 对应的值改变成 value。 callback 是一个回调函数,在这次setData对界面渲染完毕后调用。 其中 key 可以非常灵活,以数据路径的形式给出,如 array[2].message,a.b.c.d,并且不需要在 this.data 中预先定义。 注意:
view层调用事件view(视图) 层中使用 bindtap 属性调用 logic(逻辑) 中定义的事件。 Page({ onLoad: function () {}, onShow:function(){ console.log(this.route); }, // 点击弹出提示卡 click_1:function(){ wx.showToast({ title: '成功', icon:'success', duration:3000 }) }, // 点击输出提示 click_2:function(){ console.log("你点击了 “提示消息” 按钮"); }, // 页面跳转 goto:function(){ wx.navigateTo({ url: "../info/info?name=" + this.data.user_name + "&skill=" + this.data.user_skill }) } })
最后附上一张官方的page生命周期图解。 |
请发表评论