数据流是我们的行为和响应的抽象(例如用户的点击,以及对应页面的更新)
单向数据流有助于明确具体的行为和对应的响应,实现状态可预测。
React和数据流:
React是一个纯view层框架,需要数据流支撑,Flux太重太大,不适合使用,而redux简单高效
MVC随着项目的扩大,会使得结果变得非常不可预测,这对开发来说会是一个灾难。
Redux数据流:用户触发了UI(view)上的action,action将会被送到reducer这样的方法里面,然后reducer会更新store,页面的数据即state包含在store里面,是其一部分,决定了组件的渲染结果,state变化之后又在显现在view层上,进行用户的响应。
action是行为的抽象,描述具体的用户行为,是一个简单的js对象,reducer是响应的抽象,需要传入action和旧状态,返回新状态,即响应,即一个js纯函数。
mapStateToProps, mapDispatchToProps:由dispatch和state引起props对应的变化,都会被redux捕捉到,以此得到该有的响应。
上述这张图可以表明Redux是如何对数据状态流进行管理的:
UI代表页面,当页面发生改变时(例如用户点击页面触发单击事件等操作),就会引发action,action会被传送到reducer中,reducer会根据action的type(即具体是哪种操作)来决定执行哪个事件处理函数,这些事件处理函数会更新redux中的store,即更新了state,state一旦发生变化,就会触发render函数进行页面的再次渲染,即使得页面发生了改变,响应用户的行为。上述的一系列过程即redux对数据状态流的管理。
Redux与react连接: