微信小程序重写onLoad函数,让每个页面在运行的时候都可以执行

2020-10-30  本文已影响0人  Demon_LF
// 还原上个页面的参数到 options, 并删除 options.params  
const extractParams = function (query = {}) {
    const { params } = query
    let options = { ...query }
    if (params !== undefined) {
        options = {
            ...options,
            ...JSON.parse(decodeURIComponent(params)),
        }
        delete options.params
    }
    return options
}



const originPage = Page

// 对微信原来的 Page 函数进行扩展  
Page = function (config = {}) {
    // 重写 Page 的 onLoad 函数, 还原上个页面传进来的参数  
    let { onLoad } = config
    config.onLoad = function (options = {}) {

        // 在这里写统一的拦截命令
        // 例如添加一些赋值或者执行一个方法

        onLoad && onLoad.call(this, extractParams(options))
    }
    return originPage(config)
}

来自https://ask.dcloud.net.cn/question/92257

上一篇 下一篇

猜你喜欢

热点阅读