跳转到主文档

createStore

补充信息

通过 createStore 可以在 React 组件外消费 Model。也可以创建多个 store 来拆分状态。 如在工具函数中访问 state、执行 actions 时可利用 createStore 获取工具函数来消费 Model

import { createStore } from '@modern-js/runtime/model';

API

createStore(config) => ReduxStore & { use: UseModel }

参数

  • config:object,store 配置选项
    • initialState: Record<string, any>,用于设置全局 store 的初始状态。(一般用于 SSR,初始化数据)
    • reducer: Reducer
    • middlewares: Middleware[]
    • models: Model[],在 App 入口中统一注册 Models。(正常使用无需提前注册)
    • plugins: Plugin[],注入插件,可注入的插件有(router、immer、auto-action、machine 等)。
    • enhancers: StoreEnhancer[]Redux createStore API 中 enhancer 配置,详见介绍

返回值

createStore 函数返回 storestore 是继承 Redux Store,并在其上添加了 use 函数。

  • use:function,获取 ModelReact Hook 函数,用法与 useStaticModel 相同,但可以在 React 组件外使用。
  • ReduxStore:ReduxStore,详见 Redux Store

示例

import { createStore } from '@modern-js/runtime/model';

const store = createStore({});

function load() {
const [, actions] = store.use(fooModel);

actions.load();
}