Fork me on GitHub

始于Flux的单项数据流发展简单介绍

差劲的程序员操心代码,优秀的程序员操心数据结构和它们之间的关系
                                                                          ————Linus Torvalds,Linux创始人
 
Flux是由facebook推出的,用来解决MVC架构带来的数据管理问题。
Flux是一种“单项数据流”的管理方式。
在以前,采用MVC架构,MVC无法禁绝View和Model之间的直接对话,因此产生了View直接Model,Model直接修改View的情况。当项目复杂度度越来越高时候时,这种方式很容易造成数据管理混乱。
 
而Flux的单项数据流,如果要改变界面,需要改变Store中的状态,如果要改变Store中的状态,必须派发一个action对象。Store对应于MVC中的Model,View对应于MVC中的View。单项数据流结果View只能获取Store中数据,但是不能直接修改,想要修改需要派发一个action给Dispatcher。Store本身并不具备直接改变View的功能。
 
这样限制禁绝了数据流混乱的可能。
 
后来基于flux的不足,诞生了reflux、fluxible、redux等,其中又以redux最受欢迎。
 
redux在单项数据流的基础上,还强调三个基本原则:
1,唯一数据源:也就是只有一个store
2,保持状态只读:只能通过派发action改变
3,数据改变只能通过纯函数完成
 
对比Vue和React
两者都采用了单项数据流的管理方式,相同的是都只有一个store,都只能通过派发事件修改store,不同的是Vue是直接修改Store中的数据,而react是返回一个新的state数据

posted @ 2021-05-07 16:16  我站在山顶上  阅读(132)  评论(0编辑  收藏  举报