1.0.1 • Published 3 years ago

taro-plugin-mini-page-interceptor v1.0.1

Weekly downloads
23
License
-
Repository
github
Last release
3 years ago

Taro 小程序Page拦截器

这个插件可以让你劫持Page构造器,实现更底层的逻辑

Install

  npm install taro-plugin-mini-page-interceptor --save-dev

Taro 项目中使用

  /* config/index.js */
  const config = {
    plugins: [
      'taro-plugin-mini-page-interceptor'
    ]
  }
  /* 或者加配置参数 */
  const config = {
    plugins: [
      ['taro-plugin-mini-page-interceptor', {
        globalKey: '__page_interceptor',
        pages: [
          'pages/index/index'
        ]
      }]
    ]
  }

插件配置

  interface MiniPageInterceptorOptions {
    globalKey?: string; // 插件会使用这个key来挂载拦截器到全局变量,默认为__page_interceptor,如wx.__page_interceptor、swan.__page_interceptor
    pages?: Array<String>; // 如果定义了pages,只会在pages的页面里拦截Page,未定义会自动读取app.json里的所有page
  }

注册Page拦截器

请在入口文件app.js顶部注册拦截器

  import { registPageInterceptor, assignPageOptions } from 'taro-plugin-mini-page-interceptor/dist/pageInterceptor'

  // registPageInterceptor只能被调用一次,再次调用无效
  registPageInterceptor(function MyPage(pageOptions, oldPage) { // options为page配置,oldPage为原生Page构造器
    // 在这里可以劫持options,做一些自己的操作,如添加data
    pageOptions = assignPageOptions(pageOptions, {
      data: {
        statusBarHeight: Taro.getSystemInfoSync().statusBarHeight
        // 初始data,会被assign到pageOptions.data
      },
      onLoad(options) { // function会和pageOptions的function合并

      }
    })
    oldPage(pageOptions)
  }, '__page_interceptor') // 第二个参数为globalKey,默认__page_interceptor