扩大微信小顺序 Page 组织函数,修正性命周期函数

不BB,直接正题

一. 将大众要领绑定到Page上

  • 单个绑定

    const oldPage = Page
    Page = function(app) {
      // 注重大众函数的名字不要反复,不然掩盖
      app.util = function() {}
      
      return oldPage(app)
    }
  • 多个绑定,文件绑定

    const util = require('./util.js');  // 须要绑定的函数由util文件exports出来
    const oldPage = Page
    Page = function(app) {
      let newPage = Object.assign({}, util, app)
      
      return oldPage(newPage)
    }

二. 扩大,修正性命周期函数

const oldPage = Page
Page = function(app) {
  app.onLoad = function(options) { // 这里必需运用function, 不能够运用箭头函数, 不然this指向毛病
      console.log("扩大onLoad");
  
      // onLoad函数在是当前page实例高低文中实行,所以当前的this为当前page实例
      // 假如不运用call来硬绑定,而是直接app.onLoad(),那末onLoad里的this将为app这个对象
      // 即我们正常在page.js里Page(app) 括号内里我们本身写的page对象
      if(typeof app.onLoad === 'function') {
          app.onLoad.call(this, options); 
      }
  }
  
  return oldPage(app)
}

ps.想更体系的相识js关于this的学问能够戳这里

三. 运用

我本身写的时刻,将自定义的内容零丁封装到一个js文件中,然后在app.js中援用这个文件即可

require('./init.js'); //援用即可
App({
  onLaunch: function (options) {
  }

})
    原文作者:海洋饼干
    原文地址: https://segmentfault.com/a/1190000016251970
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞