《深入浅出React和Redux》(2)
Redux是Flux理念的一种实现。 关于Flux理念可以通过类比MVC模式来做简单理解。 MVC模式中,用户请求先到达Controller,由Controller调用Model获得数据,然后把数据交给View,按照这种模式,MVC应该也是一个controller->model->view的单向数据流,但是,在实际应用中,由于种种原因,往往会让view直接操作Model,随着应用的演进、逻辑变得越来约复杂,view与model之间的关系就会变得错综复杂、难以维护。 在MVC中让View和Model直接对话就是灾难 。 Flux理念可以简单看作是对MVC添加了更加严格的数据流限制。 Flux框架随React一同被Fackbook推出,但在Dan Abramov创建了Redux后,Redux已经替代了Flux。 基本原则 Flux的基本原则是“单向数据流”, Redux在此基础上强调三个基本原则: 唯一数据源(Single Source of Truth),应用的状态数据应该只存储在唯一的一个Store上,它是树形结构,每个组件往往只是用树形对象上一部分的数据,而如何设计Store上状态的结构,就是Redux应用的核心问题。 保持状态只读(State is read-only),不能直接修改store状态,必须要通过派发action对象的方式来进行。 数据改变只能通过纯函数完成