redux与flux及vuex之间的区别:
(1)redux与flux的区别
redux与flux很像,主要区别在于flux有多个可以改变应用状态的store,它通过事件来触发这些变化,组件可以订阅这些时间来和当前状态同步。
redux中没有分发器dispatcher,但在flux中dispatcher被用来传递数据到注册的回调事件,另一个不同的是flux中有很多扩展是可用的,这也带来了一些混乱与矛盾。
在redux中只能定义一个可以更新状态的store,flux中可以定义多个仓库。
redux把store和dispatcher合并,结构更加简单清晰,新增state,对状态管理更加明确。
(2)redux和vuex的区别
vuex呢,改进了redux中的action和reducer函数,以mutation变化函数取代reducer,无需switch,只需在对应的mutation函数里改变state值即可。
由于vue自动重新渲染的特性,无需订阅重新渲染函数,只要生成的state即可。
(3)redux的优点
redux把流程规范了,统一渲染根节点虽然对代码管理上规范了一些,只要有需要显示数据的组件,当相关数据更新时都会自动进行更新,减少手动编码量,提高编码效率,相对于flux能省很多行代码。
(4)redux的缺点
一个组件所需要的数据,当相关数据更新时,组件要重新render,可能会有效率影响,或者需要写复杂的shouldComponentUpdate进行判断。
redux中有三个基本概念,Action,Reducer,Store。
store 仓库
维持应用的 state;
提供 getState() 方法获取 state;
提供 dispatch(action) 方法更新 state;
通过 subscribe(listener) 注册监听器。
action 中发送过来的对象 必须有一个type属性 reducer 他是一个纯函数 他会跟action发送过来的type类型做逻辑上的处理(使用switch方法进行判断)
Reducer 函数最重要的特征是,它是一个纯函数。也就是说,只要是同样的输入,必定得到同样的输出。
约束: 不得改写参数 不能调用系统 I/O 的API 不能调用Date.now()或者Math.random()等不纯的方法,因为每次会得到不一样的结果。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/149819.html