前言
如果只写函数组件,建议用mobx-react-lite。如果需要写类组件,建议用mobx-react。
- mobx-react 支持类组件,mobx-react-lite 不支持类组件。
- mobx-react 支持Provider 和inject,mobx-react-lite 可以用React.createContext替代。
- mobx-react 支持特殊的观察对象 propTypes,mobx-react-lite 可以用typeScript代替。
- mobx-react(7.3.0)的大小:压缩前16kb,压缩后5.5kb;mobx-react-lite(3.3.0)的大小:压缩前6.2kb,压缩后2.2kb。
使用
因为项目里全面拥抱 hooks,所以选择 mobx-react-lite。
安装
1 | yarn add mobx mobx-react-lite |
定义 mobx 的 store
mobx支持多个多个状态模块:
1 | import { makeAutoObservable } from "mobx" |
定义导出出口 index.tsx
1 | import React, { createContext, useRef } from 'react'; |
在 react 工程入口导入
1 | import { store } from './store/index'; |
在页面使用
1 | import { observer } from "mobx-react-lite" |