關於重寫微信小程序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會報錯