小程序 page 和 onLoad 的赋值
Posted daxiangcai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小程序 page 和 onLoad 的赋值相关的知识,希望对你有一定的参考价值。
貌似 page 中的赋值只会执行一次,而不是进入此页面后执行一次,例如:
data: title: \'您认为别人是这样的吗?\', bubblesTextList: app.globalData.mood_1 , onLoad(options) ,
那么获取到的 bubblesTextList 永远不会改变,及时你在下面对 globalData 重新赋值,解决方法是在 onLoad 中获取值:
data: title: \'您认为自己是这样的吗?\' , onLoad(options) this.setData( bubblesTextList: app.globalData.mood_1 ) ,
微信小程序Page对象重写
关于重写微信小程序Page对象如下:
let orgainPage = Page; // 保存原本的Page对象 let basePage = function (data) { // 生成初始data,如果页面已经有该值不在重新赋值 if (typeof data.data.dataVal === ‘undefined‘) { data.data.dataVal = ‘具体值‘; } // 重写onLoad默认执行一些初始事件 let orgainOnLoad = data.onLoad; data.onLoad = function (o) { // 执行的初始事件 start // 执行的初始事件 end orgainOnLoad.call(this, o); } // 默认初始方法,如果页面已经有该方法不在重写该方法 if (typeof data.orgainFun !== ‘function‘) { data.orgainFun = function () { // 执行具体函数 start // 执行具体函数 end } } return orgainPage(data); };
重写后的Page可以直接挂到App里面
App({ onLaunch() { }, // 直接挂到这边,新页面直接调用app.Base替换Page Base: basePage, globalData: {} })
不直接重写Page是因为使用app.json插件时,不允许修改全局变量“Page”。
每个Page页面调用
const app = getApp();
app.Base({
data: {
}
})
页面必须有data,不然.call会报错
以上是关于小程序 page 和 onLoad 的赋值的主要内容,如果未能解决你的问题,请参考以下文章
微信小程序里页面onload事件中。setData方法,为啥赋值给data,赋值不了?