Home >WeChat Applet >Mini Program Development >Content analysis of WeChat applet Page constructor and life cycle function (with code)

Content analysis of WeChat applet Page constructor and life cycle function (with code)

不言
不言Original
2018-09-04 10:56:584538browse

The content of this article is about the content analysis of the WeChat applet Page constructor and life cycle function (with code). It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you. helped.

1. Bind public methods to Page

Single binding

const oldPage = Page
Page = function(app) {
  // 注意公共函数的名字不要重复,否则覆盖
  app.util = function() {}
  
  return oldPage(app)
}

Multiple binding, file binding

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

2. Extension and modify the life cycle function

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. If you want to know more about js’s knowledge about this in a more systematic way, you can click here

3. Use

When I write it myself, I encapsulate the customized content into a js file, and then reference this file in app.js

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

})

Related recommendations:

Life cycle and parameter transfer of WeChat applet

WeChat applet Page() function detailed explanation

Detailed explanation of the life cycle of the page in WeChat Mini Program Development Series (4)

The above is the detailed content of Content analysis of WeChat applet Page constructor and life cycle function (with code). For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn