本文摘自PHP中文网,作者青灯夜游,侵删。
区别:state对象在react应用中不可变的,需要使用setState方法更新状态;在vue中,state对象不是必须的,数据由data属性在vue对象中管理。
相关推荐:《编程视频课程》
vue和react中状态管理的区别
在React中一个比较大的内容就是函数式编程。如果你用过现在流行的Redux状态管理库,你大部分的开发时间都是在写函数式的内容。
这仅仅是一些东西但近几年却在巨大的JavaScript社区有很大的影响力。React没有发明函数式编程,它是相当老的一个概念了。但是它使自己流行于近代的编程语言中。它是一个很有用的方式帮助我写更好的代码。
另一个函数式编程的特点是不可变性。这是最近所谈论的内容“为什么不可变性是重要的参考”,但这个想法是用来控制所谓的“副作用”,并使管理应用程序状态更容易和更可预测。
现在,React在理解上本身不是一个函数式的库。Mobx是一个流行的React状态管理库,它有可变的状态。通过Vue的文档:
MobX在React社区非常流行,它实际上使用了与Vue几乎相同的反应性系统。 在一定程度上,React + MobX工作流可以被认为是一个更加详细的Vue,所以如果你使用这个组合并且很享受,那么跳进Vue可能是一个明智的选择。
Mobx加React基本上是一个增大版的Vue? ― Evan You
对于Vue,另外一个流行的状态管理选择是Vuex。引用来自一篇文章比较Redux和Vuex的话,下面比较的不同可以友好的给予启发:
与Redux类似,Vuex也受到Flux的启发。 然而,与Redux不同的是,Vuex改变了状态,而不是使状态不可变,并像Redux的“reducer”函数一样完全替代它。
这允许Vue.js在状态改变时自动知道哪些指令需要重新渲染。 Vuex不用专门的reducers来分解状态逻辑,而是可以用称为模块的存储来组织它的状态逻辑。
这是一个公正的技术争论,来自于去多开发者的主要观点。如果在函数式编程开发对你很重要,React将可能对你有更多的吸引(这其中可能有例外,使用Mobx)。如果不是,Vue可能更有吸引力。
相关阅读 >>
更多相关阅读请进入《vue》频道 >>
Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者