-
1. redux是什么?
2013年facebook提出了facebook这一框架概念,而redux是flux的一种实现,将flux与函数式编程结合在一起的一个前端框架。
flux是一个对数据流管理更加严格的MVC框架,其基本原则是单向数据流;
redux在此基础上强调了三个基本原则: 1. 唯一数据源; 2. 保持状态只读; 3. 数据改变只能通过纯函数完成
-
2. 为什么需要redux?
当我们的组件树只有1层或者2层的时候,想从最上层透传属性还是很容易的事情,但是当组件层级越来越多,从底层父组件传递属性到达最末的叶子组件,整个过程的传输在代码上就显得相当的冗余,而且如果多个组件依赖于一个共同的属性,局部变化引起的全局变化很容易又会导致状态震荡,这也是令人倍感头疼的问题,所以redux就应运而生。
其实react中强调的单向数据流几乎是需要依托redux才能实现的,当接入了redux之后,所有的状态变化都拘束到reducer(s)中进行,修改统一的数据源,然后再自上而下的重新分发,减少状态/属性传递的成本,也从根源上杜绝了状态震荡,而且redux将数据从react中分离,则理论上所有的react component都可以是无状态组件,那么渲染性能还能够得到进一步的提升。
-
3. redux的使用场景?
react是Dom的抽象层,没有涉及代码结构和组件之间的通信,并不是web应用的完整方案;
redux是非常有用的框架,但并不是非用不可,只有你遇到了react实在解决不了的情况,才用redux;
那么什么时候可以考虑使用redux呢?如下:
1. 用户的使用方式复杂 2. 不同身份的用户有不同的使用方式 3. 多个用户之间可以协作 4. 与服务器大量交互,或者使用了WebSocket 5. View要从多个来源获取数据
即从组件角度看如下场景需要使用redux
1. 某个组件的状态需要共享 2. 某个状态需要在任何地方都可以拿到; 3. 一个组件需要改变另一个组件的状态; 4. 一个组件需要改变全局状态;
redux并不是web架构的唯一解决方案,不要把它当做万灵丹,如果应用没那么复杂,那就没必要用它。
redux学习笔记——初识redux
最新推荐文章于 2024-05-01 11:58:30 发布