Rudex

3 篇文章 0 订阅
2 篇文章 0 订阅

Redux名字的含义是Reducer+Flux。

1.Redux三个基本原则

Flux的基本原则是“单向数据流”, Redux在此基础上强调三个基本原则:

  1. 唯一数据源(Single Source of Truth)。唯一数据源指的是应用的状态数据应该只存储在唯一的一个Store上。
  2. 保持状态只读(State is read-only)。保持状态只读,就是说不能去直接修改状态,要修改Store的状态,必须要通过派发一个action对象完成,这一点,和Flux的要求并没有什么区别。
  3. 数据改变只能通过纯函数完成(Changes are made with purefunctions)。纯函数就是Reducer。在Redux中,每个reducer的函数签名为:reducer(state,action)。Redux的reducer只负责计算状态,却并不负责存储状态。

2.容器组件和傻瓜组件

在Redux框架下,一个React组件基本上就是要完成以下两个功能:

  1. 和Redux Store打交道,读取Store的状态,用于初始化组件的状态,同时还要监听Store的状态改变;当Store状态发生变化时,需要更新组件状态,从而驱动组件重新渲染;当需要更新Store状态时,就要派发action对象;
  2. 根据当前props和state,渲染出用户界面。

容器组件和傻瓜组件分别实现上面的功能。

两个组件是父子组件的关系。承担第一个任务的组件,也就是负责和Redux Store打交道的组件,处于外层,所以被称为容器组件(Container Component);对于承担第二个任务的组件,也就是只专心负责渲染界面的组件,处于内层,叫做展示组件(PresentationalComponent)。

                   容器组件和傻瓜组件分工

傻瓜组件是一个纯函数,且是无状态的,这种组件叫做“无状态”组件。

3.组件context

一个应用中,最好只有一个地方需要直接导入Store,这个位置当然应该是在调用最顶层React组件的位置。

所谓Context,就是“上下文环境”,让一个树状组件上所有组件都能访问一个共同的对象,为了完成这个任务,需要上级组件和下级组件配合。

我们来创建一个特殊的React组件,它将是一个通用的context提供者,可以应用在任何一个应用中,我们把这个组件叫做Provider。

单纯来看React的这个Context功能的话,必须强调这个功能要谨慎使用,只有对那些每个组件都可能使用,但是中间组件又可能不使用的对象才有必要使用Context,千万不要滥用。

4.react-redux

react-redux要求store不光是一个object,而且是必须包含三个函数的object,这三个函数分别是。subscribe、dispatch、getState。

react-redux在componentWillReceiveProps函数中会检查这一次渲染时代表store的prop和上一次的是否一样。如果不一样,就会给出警告,这样做是为了避免多次渲染用了不同的Redux Store。

5.React + Redux计数器应用逻辑图

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值