react难点掌握

react难点—逆战

一:模块划分

为了能解决命名冲突问题,同时模块功能更加清晰,个人认为需要掌握react中模块划分这一知识点

第一步:建立模块组件自身的reducer.js

和之前的reducer.js写法一致

//1)初始化state
var initState={
key:value
}
//2)创建reducer,并且给state初始化值
var reducer=(state=initState,action)=>{
//3)根据action的类型type做不同的逻辑代码
...
//4)返回state
return state
}
//5)导出
export default reducer;

第二步:在store文件夹下的reducer.js里,结合所有组件的reducer,并且划分模块名

1)需要导入combineReducers()辅助函数
import {combineReducers} from 'redux'

combineReducers 辅助函数的作用是,把一个由多个不同 reducer 函数作为 value 的 object,合并成一个最终的 reducer 函数,然后就可以对这个 reducer 调用 createStore。

2)导入其他组件的reducer.js

将其他组件的reducer.js引入,并且命名唯一!
例:

import aReducer from '路径'
import bReducer from '路径'
3)使用combineReducers()辅助函数结合起来
var reducer=combineReducers({
模块的名字:引入的模块reducer
a:aReducer,
b:bReducer
...
})
4)最后记得导出reducer
export default reducer

第三步:取模块里面的值

模块名.key就行啦,记得加模块名哦

二.react使用redux后的异步操作

在actionCreator里面
插件:redux-thunk
//但不是唯一解决异步的方式,原理简单,但是项目大了就比较乱
//还有就是redux-saga

1.安装redux-thunk

yarn add redux-thunk

2.引入applyMiddleware中间件

在store里的index.js
import {applyMiddleware} from ‘redux’

3.引入redux-thunk

在store里的index.js
import thunk from ‘redux-thunk’

4.使用中间件

var store =creatorStore(reducer,applyMiddleware(thunk))

5.在actionCreator里面发起异步async请求

写异步方法,返回回调函数,参数是dispatch(中间件传递过来的)

asyncAction(){
return (dispatch)=>{
发出异步请求,成功后在异步动作回调里,用dispatch发出动作给reducer
}
}

还有更多需要掌握的知识点,日后再更

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值