react-redux 与 redux

redux是严格的单项数据流

1.Action 是把数据从应用传到store的有效载荷,它是store数据的唯一来源,一般通过store.dispatch()将action传到store

Action本质是js对象,action内必须使用一个字符串类型的type字段表示将要执行的动作,多数情况下,type会被定义成字符串常量。当应用规模越来越大时,建议使用单独文件来存放type


2.reducer
reducer是一个纯函数,接受旧的state和action,返回新的state
纯函数:只要传入参数相同,返回计算得到的下一个state一定相同,没有特殊情况,没有副作用,没有api请求,没有变量修改,单纯执行计算


3.Redux store
store能维持应用的state,并在当你发起action的时候调用reducer。
store的职责:
    1.提供getState()方法获取state
    2.提供dispatch(action)方法更新state
    3.通过subscribe(listener)注册监听器
    4.通过subscribe(listener)返回的函数注销监听器


4.Redux生命周期
1.调用store.dispatch(action)
action 是一个描述发生了什么的普通对象,{type:'LIKE_ARTICLE',articleId:42}
可以把action理解成新闻的摘要,可以在任何地方调用store.dispatch(action),包括组件中,XHR回调中,甚至定时器中。

2.Redux store调用传入的reducer函数
store会把两个参数传入reducer:当前的state树和action

3.根reducer应该把多个子reducer输出合并成一个单一的state树

4.Redux store保存了根reducer返回的完整state树,这个新的树就是应用的下一个state,所有订阅store.subscribe(listener)的监听器都将被调用,监听器里可以调用store.getState()获得当前state


react-redux 和  redux 的配合使用

smart/container components  容器组件
描述如何运行,数据获取,状态更新
直接使用redux
数据来源:监听redux state
数据修改:向redux派发actions
调用方式:通常由react redux生成

dumb/presentatinal  展示组件
描述如何展现 骨架,样式
不直接使用redux
数据来源:props
数据修改:从props调用回调函数
调用方式:手动

使用connect
定义mapStateToProps()这个函数来指定如何把当前redux store state映射到展示组件的props中。
定义mapDispatchToProps(),接收dispatch()方法并返回期望注入到展示组件的props中的回调方法
从react-redux中引入connect()并传入这两个函数


使用react-redux组件<Provider>可以让所有容器组件都能访问store,而不必显式地传递它。只需要在渲染根组件时时使用即可

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值