MobX可变性与不变性

Ter*_*ony 8 mutable immutability reactjs mobx mobx-react

为什么MobX鼓励在文档中使用可变对象?

但是,我看到了有关MobX的教程:http ://orlandohamsho.com/javascript/mobx-react-tutorial-building-first-application/

而且,他在教程中使用了不变的方法,而不是使用可变方法(参见下文)。

@action setUsers = (users) => { this.users = [...users]; (而不是推动它)

我也认为不变性方法更好(这样React.PureComponent可以工作,这意味着优化性能)

为什么MobX鼓励对对象进行变异?我应该使用哪种方法?

XPX*_*oom 8

这真的取决于您的工作。MobX没有使用不可变的概念,实际上,我认为在MobX中使用不可变的数据并不明智。例如,如果将项目添加到可观察数组,则以不可变方式进行操作,则整个数组将重新呈现。如果仅将项目推入数组,则只会渲染添加的项目。在某些情况下,您需要返回一个新数组而不是对其进行突变,但是在大多数情况下,MobX不应使用不可变的方式来更新可观察的数据。