redux如何使⽤?

 
在下⾯的场景中,引⼊ Redux 是⽐较明智的:
1、你有着相当⼤量的、随时间变化的数据;
2、你的 state 需要有⼀个单⼀可靠数据来源;
3、你觉得把所有 state 放在最顶层组件中已经⽆法满⾜需要了。
4、某个组件的状态需要共享。
 

安装redux
npm install redux --save
⽤⼀个累加器举例
 
1. 需要⼀个 store 来存储数据
2. store ⾥的 reducer 初始化 state 并定义 state 修改规则
3. 通过 dispatch ⼀个 action 来提交对数据的修改
4. action 提交到 reducer 函数⾥,根据传⼊的 action type ,返回新的 state
 
创建store,src/store/ReduxStore.js

import {createStore} from 'redux'
const counterReducer = (state = 0, action) => {
 switch (action.type) {
 case 'ADD':
 return state + 1
 case 'MINUS':
 return state - 1
 default:
 return state
 }
}
const store = createStore(counterReducer)
export default store
创建ReduxPage

import React, { Component } from "react";
import store from "../store/ReduxStore";
export default class ReduxPage extends Component {
 componentDidMount() {
   store.subscribe(() => {
     console.log("subscribe");
     this.forceUpdate();
     //this.setState({});
   });
 }
 add = () => {
   store.dispatch({ type: "ADD" });
 };
 minus = () => {
  store.dispatch({ type: "MINUS" });
 };
 render() {
   console.log("store", store);
   return (
     <div>
       <h3>ReduxPage</h3>
       <p>{store.getState()}</p>
       <button onClick={this.add}>add</button>
       <button onClick={this.minus}>minus</button>
     </div>
   );
 }
}
还可以在 src/index.js render ⾥订阅状态变更
import store from './store/ReduxStore'
const render = ()=>{
 ReactDom.render(
 <App/>,
 document.querySelector('#root')
 )
}
render()
store.subscribe(render)
1. createStore 创建 store
2. reducer 初始化、修改状态函数
3. getState 获取状态值
4. dispatch 提交更新
5. subscribe 变更订阅
 
原文:视频笔记
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值