@chaoswise/cw-mobx

公共状态管理工具

Usage no npm install needed!

<script type="module">
  import chaoswiseCwMobx from 'https://cdn.skypack.dev/@chaoswise/cw-mobx';
</script>

README

  1. 安装
npm install cw-mobx -S
  1. 注册store(遵循以下约定)
const store = {
    // 唯一命名空间
    namespace: 'store', 
    // 状态
    state: { 
        num: 0,
    },
    // 副作用actins,处理异步请求 (函数生成器)
    effects: { 
        *addNumSync() {
            const res = yield getDemoApi(); // 异步请求
            this.num = res.data;
            this.addNum();
        }
    },
    // 状态修改actions
    reducers: {
        addNum() {
            this.num = this.num + 100;
        }
    },
    // 计算属性
    computeds: {
        getDoubleNum() {
            return this.num * 2;
        }
    }

};
  1. 入口注入store
import React from 'react';
import { Provider, use } from '@chaoswise/cw-mobx';

import store from './store';
import Router from './Router';

// 生成stores 传入数组
const finalStores = use([store]) // 可传入多个 最终按namepace生成相关store

function Root() {
return (
    <Provider
        {...finalStores} 
    >
        <Router />
    </Provider>
);
}
export default Root;
  1. 通过conncet高阶组件注入依赖(props)
export defalut connect(({
  store // 命名空间
}) => {
  return {
    // 按需引入store
  };
})(Component);