当前位置:网站首页>Redux使用
Redux使用
2022-07-07 23:44:00 【是张鱼小丸子鸭】
目录
1,redux的工作流程
2.安装redux
npm i redux --save3.redux概念了解
redux是一个专门用于做状态管理的js库(不是react插件库)
可以用在react,angular,vue项目中,基本与react配合使用
作用:集中式管理react应用中多个组件共享的状态
4.创建Redux中的仓库-store和reducer
首先,创建一个store文件夹,然后创建一个index.js文件,再创建一个reducer.js文件
import { createStore } from "redux";
//引入reducer文件
import reducer from './reducer'
let store=createStore(reducer)
export default storereducer.js文件
const defaultState={
value:‘张三’,
list:[
'您好',
'hello'
]
}
//业务逻辑可以写这里
export default (state=defaultState,action)=>{
return state
}这样,简单的store和reducer就搭建好了,现在我们在组件中使用store仓库
首先进行引入
import store from './store'
然后我们可以打印一下store,打印结果如下,他有一个getState()方法

然后在页面渲染我们getState里面的值即可
注:reducer只能接收state,不能改变state
5.redux中间件( Redux-thunk)

安装
npm i redux-thunk --save
配置
import { createStore,applyMiddleware } from "redux";
import thunk from 'redux-thunk'
//引入reducer文件
import reducer from './reducer'
let store=createStore(reducer,applyMiddleware(thunk))
export default storecreatStore只能接收两个参数,如果想要定义多个参数,我们可以使用增强函数(compose)
异步处理写在中间件Redux-thunk中
解决异步action不能使用function方法,如果我们不使用中间件,那么我们如果在action中使用函数,那么他会进行报错
6.combineReducers使用
作用:合并多个reducer函数
redux的combineReducers()可以方便的将redux的reducer拆分为各个小的reducer文件,统一调用各自的reducer,方便统一管理
creatStore只能接收两个参数,如果想要定义多个参数,我们可以对多个reduce进行合并,使用combineReducers
import { createStore,applyMiddleware,combineReducers } from "redux";
import countReduce from '../reduces/count_reduce'
import todoReduce from '../reduces/todolist_reduce'
import thunk from 'redux-thunk'
// 使用redux官方提供的合并reduce方法
const allReducer = combineReducers({
count:countReduce,
todolist:todoReduce
})
// 第一个参数为全部reduce,第二个参数为使用支持异步action的中间件
let store = createStore(allReducer,applyMiddleware(thunk))
export default store边栏推荐
- About snake equation (2)
- 滑环在直驱电机转子的应用领域
- Call (import) in Jupiter notebook ipynb . Py file
- Solve the error: NPM warn config global ` --global`, `--local` are deprecated Use `--location=global` instead.
- Common fault analysis and Countermeasures of using MySQL in go language
- The solution of frame dropping problem in gnuradio OFDM operation
- Matlab code on error analysis (MAE, MAPE, RMSE)
- 子矩阵的和
- Matlab code about cosine similarity
- Ag9310 same function alternative | cs5261 replaces ag9310type-c to HDMI single switch screen alternative | low BOM replaces ag9310 design
猜你喜欢

About snake equation (1)

Problems of font legend and time scale display of MATLAB drawing coordinate axis

The beauty of Mathematics -- the principle of fine Fourier transform

2022 high altitude installation, maintenance and demolition examination materials and high altitude installation, maintenance and demolition operation certificate examination

General configuration tooltip

Kuntai ch7511b scheme design | ch7511b design EDP to LVDS data | pin to pin replaces ch7511b circuit design

Probability distribution

Arm bare metal

break net

The solution of frame dropping problem in gnuradio OFDM operation
随机推荐
Blue Bridge Cup embedded (F103) -1 STM32 clock operation and led operation method
Matlab code about cosine similarity
qt--將程序打包--不要安裝qt-可以直接運行
Basic realization of line chart (II)
Frrouting BGP protocol learning
Cs5261type-c to HDMI alternative ag9310 | ag9310 alternative
Connect to the previous chapter of the circuit to improve the material draft
LeetCode 练习——剑指 Offer 36. 二叉搜索树与双向链表
小金额炒股,在手机上开户安全吗?
AttributeError: ‘str‘ object has no attribute ‘strftime‘
Smart agricultural technology framework
2022 high voltage electrician examination skills and high voltage electrician reexamination examination
2021 tea master (primary) examination materials and tea master (primary) simulation test questions
The difference between distribution function and probability density function of random variables
Understanding of prior probability, posterior probability and Bayesian formula
About snake equation (3)
Plot function drawing of MATLAB
QT--创建QT程序
Use "recombined netlist" to automatically activate eco "APR netlist"
Basic realization of line graph