MyStore.js

    1. // MyStore.js 建一个 MobxStore 类
    2. import {MobxStore} from '@minapp/mobx'
    3. import {observable} from 'mobx'
    4. export class MyStore extends MobxStore {
    5. @observable userInfo = null
    6. }

    MyApp.js

    1. // MyApp.js
    2. import {MobxApp, MobxStore, appify, wxp} from '@minapp/mobx'
    3. import {MyStore} from './MyStore'
    4. // appify 主要是将 MyApp 转化成一个 PlainObject,并传入微信原生的函数 App 中;另外注入全局 store 和框架需要的数据
    5. @appify(
    6. new MyStore(),
    7. {
    8. // 下面两个参数主要是提供给 @minapp/mobx 框架使用,生成一个 $url 实例,让你可以方便的在 url 之间跳转
    9. pages: require('./app.json?pages'), // 获取 app.json 中的 pages 字段
    10. tabBarList: require('./app.json?tabBar.list') // 获取 app.json 中的 tabBar.list 字段
    11. }
    12. )
    13. export class MyApp extends MobxApp {
    14. async onLoad() {
    15. this.store.userInfo = (await wxp.getUserInfo()).userInfo // 轻松修改全局数据
    16. }
    17. }

    IndexPage.js

    1. import {MobxPage, pagify} from '@minapp/mobx'
    2. // 类似于 appify,所有 Page 都需要调用 pagify;
    3. // 它会将 IndexPage 转化成 PlainObject,并传入微信原生的函数 App 中;
    4. // 另外会像这个对象中注入 app 实例和 app.store 对象
    5. @pagify()
    6. export class IndexPage extends MobxPage {
    7. onLoad() {
    8. // getUserInfo 是网络接口,所以当 indexPage 加载完的时候,app 中的接口不一定请求完了,所以要判断
    9. if (this.store.userInfo) {
    10. }
    11. }
    12. }