关于重写微信小程序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会报错