Redux 小小入门


Action:

 store.dispatch() action → store action
  • 本质js对象
  • type表示将要执行的动作(必须)
  • index引用指定任务

action创建函数:

  • 生成action的方法
dispatch (action创建函数结果)或a= b => dispatch( action创建函数(b)); 
a(b);

  • 也可用react-redux的 connect()
  • BindActionCreators():绑定多个action创建函数到dispatch()

Reducer:

  • 响应action并发送到store
(PreviousState, action) =>newState
  • 不要在reducer里:1修改传参2执行有副作用的操作如API请求和路由跳转3调用非纯函数
  • Object.assign(target,...source):将target与source连接到target上,注意不要用此改变state
  • CombineReducers({reducer函数列表}):调用reducer并将生成的结果合并成一个大对象
CombineReducers({
a: doSomethingWithA,
b: processB,
c: c})


等价于

reducer( state={}, action){
return{
a: doSomethingWithA( state.a, action),
b: processB( state.b,action),
c: c(state.c,action)})


Store:

  • 维持、获取getState()、更新dispatch(action) state,注册subscibe(listener)、注销(通过注册返回的函数)监听器
  • store = createStore( reducer) :createStore接受reducer作为参数生成一个新store。以后每当
  • store.dispatch:发送过来一个新action就会自动调用reducer得到新state
  • createStore( reducer,参数2):参数2可选用于设置state初始状态

数据流:单向

React之容器组件和展示组件

  • 容器组件仅仅做数据提取,然后渲染对应子组件
  • 展示组件描术如何展现(⻣架样式)可能包含回调函数

React-redux:

<Provider store>使组件层级中的connect( )方法能获得redux store

  • connect([mapStateToProps],[mapDispatchToProps],[mergeProps],[options]):连接react组件与redux store,连接操作不会改变原来的组件类反而返回一个新的已连接的组件类
  • mapStateToPtops(state,[ownProps]):stateProps         当redux store发生变化该函数被调用,且必须返回
  • 一个纯对象,这个对象会与组件props合并. 若有第2个参数则该参数作为传递到组件的props,且只要组件接收到新props,mapStateToProps也会被调用
  • mapDispatchToProps(dispatch,[ownProps]):dispatchProps     成为后组件的props
  • connect(args)(后组件)
  • 将action作为props绑定到组件上也会
  • 中间件:用于异步操作
  • 异步:action有3种发起时、成功时、失败时, state也需改造反映不同操作状态
  • redux-thunk改造strore.dispatch使其可接受函数作为参数
  • redux-promise接受promise对象

相关API:

createStore( reducer,[preloadedState],enhancer):reducer
参数2:初始时state
参数3:可为使用中间件
applyMiddlewares():将所有中间件组成数组依次执行


小总结:

1先来一个展示组件(自己写),写好需要的组件和state以及函数
2写映射即mapStateToPtops和mapDispatchToProps
3写具体action, 23可换序
4 connect生成容器组件
5写reducer即具体操作
6createStore生成store,此时可使用注册监听器
7 Provider包裹根组

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值