React-5-状态管理器Redux
Posted yinwenjie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React-5-状态管理器Redux相关的知识,希望对你有一定的参考价值。
一、Redux成员及数据流
1.Redux成员
①actions:描述操作的对象,调用dispatch时需要传入
②store:整个应用数据存储的仓库,把全局数据保存起来
③reducers:接收actions并更新store
注意:redux是一个单独的数据流框架,和react没有直接联系,我们也可以在其他项目中使用redux
2.Redux数据流
二、学习并写一个简单的累加器
1.redux使用步骤
- 安装
npm install redux --save
- 从redux引入createStore来创建数据仓库store,createStore是一个函数,需要传入reducer作为参数,返回值是我们需要的store
- 在使用页面引入数据仓库store
- 通过getState()方法可以获取到数据仓库里的状态数据state
- 通过dispatch(action)方法可以触发更改reducer函数
- 每次触发dispatch都会触发store.subscribe()方法,重新渲染页面
2.代码演示
import { createStore } from ‘redux‘ // 编写reducer const firstReducer = (state=0, action) => { switch(action.type) { // 根据type进行不同操作 case ‘add‘: return state+1; case ‘reduce‘: return state-1; default: return state; } } // 创建数据仓库,把编写好的reducer传入createStore,会返回一个新的state const store = createStore(firstReducer) export default store
import React, { Component } from ‘react‘ import store from ‘./store‘ export default class FirstRedux extends Component { render() { return ( <div> <h1>学习redux编写第一个redux累加器</h1> {/* 通过store的getState方法可以获取到状态数据 */} {store.getState()} <div> <button onClick={()=>store.dispatch({type: ‘add‘})}>加一</button> <button onClick={()=>store.dispatch({type: ‘reduce‘})}>减一</button> </div> </div> ) } }
import FirstRedux from ‘./ReduxFloder/FirstRedux‘ import store from ‘./ReduxFloder/store‘ const render = () => { ReactDOM.render(<FirstRedux></FirstRedux>, document.getElementById(‘root‘)) } render() store.subscribe(render)
三、react-redux
以上是关于React-5-状态管理器Redux的主要内容,如果未能解决你的问题,请参考以下文章
react-router-redux 5:维护导航中的商店状态历史记录
在将 react-router 5 与 redux 7 一起使用时,react-router <Link> 在转到新路由后不会重置状态
react状态管理器(分模块)之redux和redux + react-redux + reducer和redux + react-redux + reducer分模块 + 异步操作redux-thu