redux学习笔记——初识redux

  • 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架构的唯一解决方案,不要把它当做万灵丹,如果应用没那么复杂,那就没必要用它。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值