黑道-州-树木
什么是黑帮国家树?
从技术上讲,暴徒州立树(又名:MST)是一个州立集装箱系统,其基础是: 移动X功能反应状态库.
这对你来说可能没什么意义, 我将这样解释: MobX是一个州管理"引擎",而MobX-State-Tree给了它一些你应用所需的结构和通用工具. MST在大型团队中很有价值,但当您期望您的代码能快速缩放时,在更小的应用中也会有用. 如果我们把它比作Redux, MST 提供更好的性能,并且比Redux少得多的锅炉板代码!
移动X是 最受欢迎的Redux替代品之一 并被世界各地的公司(连同MobX-State-Tree)使用。 MST 与 TypeScript, React, 和 React Industrial 玩得非常好, 特别是配对时 暴徒- 反应- 立特它支持多个商店、同步动作和副作用,使得极具针对性地重新发布React apps, 以及更多 -- -- 所有软件包中都有 零依赖关系 除了MobX本身.
注:您不需要知道如何使用MobX来使用MST.
开始
官方文件可在 http://mobx-state-tree.js.org/ 互联网档案馆的存檔,存档日期2013-12-22
快速代码示例
没有什么比看一些代码更像 去感受图书馆。 看看作者的这个小例子和作者的微博列表.
import { types } from "mobx-state-tree" // alternatively: import { t } from "mobx-state-tree"
// Define a couple models
const Author = types.model({
id: types.identifier,
firstName: types.string,
lastName: types.string
})
const Tweet = types.model({
id: types.identifier,
author: types.reference(Author), // stores just the `id` reference!
body: types.string,
timestamp: types.number
})
// Define a store just like a model
const RootStore = types.model({
authors: types.array(Author),
tweets: types.array(Tweet)
})
// Instantiate a couple model instances
const jamon = Author.create({
id: "jamon",
firstName: "Jamon",
lastName: "Holmgren"
})
const tweet = Tweet.create({
id: "1",
author: jamon.id, // just the ID needed here
body: "Hello world!",
timestamp: Date.now()
})
// Now instantiate the store!
const rootStore = RootStore.create({
authors: [jamon],
tweets: [tweet]
})
// Ready to use in a React component, if that's your target.
import { observer } from "mobx-react-lite"
const MyComponent = observer((props) => {
return <div>Hello, {rootStore.authors[0].firstName}!</div>
})
// Note: since this component is "observed", any changes to rootStore.authors[0].firstName
// will result in a re-render! If you're not using React, you can also "listen" to changes
// using `onSnapshot`: https://mobx-state-tree.js.org/concepts/snapshots