开发插件

mpx支持使用mpx.use使用插件来进行扩展。插件本身需要提供一个install方法或本身是一个function,该函数接收一个proxyMPX。插件将采用直接在proxyMPX挂载新api属性或在prototype上挂属性。需要注意的是,一定要在app创建之前进行mpx.use

基础例子

扩展: test.js

  1. export default function install(proxyMPX) {
  2. proxyMPX.newApi = () => console.log('is new api')
  3. proxyMPX
  4. .mixin({
  5. onLaunch() {
  6. console.log('app onLaunch')
  7. }
  8. }, 'app')
  9. .mixin({
  10. onShow() {
  11. console.log('page onShow')
  12. }
  13. }, 'page') // proxyMPX.injectMixins === proxyMPX.mixin
  14. // 注意:proxyMPX.prototype上挂载的属性都将挂载到组件实例(page实例、app实例上,可以直接通过this访问), 可以看mixin中的case
  15. proxyMPX.prototype.testHello = function() {
  16. console.log('hello')
  17. }
  18. }

在app.js内使用插件

  1. import mpx from '@mpxjs/core'
  2. import test from './test'
  3. mpx.use(test)
  4. mpx.createApp({
  5. onLaunch() {
  6. mpx.newApi() // out put: "is new api"
  7. this.testHello() // output: 'hello'
  8. }
  9. })