在2013年,Facebook让React
亮相的同时推出了Flux框架,React
的初衷实际上是用来替代jQuery
的,Flux
实际上就可以用来替代Backbone.js
,Ember.js
等一系列MVC
架构的前端JS框架。
其实Flux
在React
里的应用就类似于Vue
中的Vuex
的作用,但是在Vue
中,Vue
是完整的mvvm
框架,而Vuex
只是一个全局的插件。
React
只是一个MVC中的V(视图层),只管页面中的渲染,一旦有数据管理的时候,React
本身的能力就不足以支撑复杂组件结构的项目,在传统的MVC
中,就需要用到Model和Controller。Facebook对于当时世面上的MVC
框架并不满意,于是就有了Flux
, 但Flux
并不是一个MVC
框架,他是一种新的思想。
Flux的流程:
-
组件获取到store中保存的数据挂载在自己的状态上
-
用户产生了操作,调用actions的方法
-
actions接收到了用户的操作,进行一系列的逻辑代码、异步操作
-
然后actions会创建出对应的action,action带有标识性的属性
-
actions调用dispatcher的dispatch方法将action传递给dispatcher
-
dispatcher接收到action并根据标识信息判断之后,调用store的更改数据的方法
-
store的方法被调用后,更改状态,并触发自己的某一个事件
-
store更改状态后事件被触发,该事件的处理程序会通知view去获取最新的数据
深入了解可以点击链接进行更深入的学习