React的Redux状态管理

首先Redux只是一种状态管理的解决方案,它里面有几个功能点

Store:数据仓库,保存数据的地方
State:state是一个对象,数据仓库里的所有数据都放到1个state里面
Action:1个动作,触发数据改变的方法
Dispatch:将动作触发成方法
Reducer:是一个函数,通过获取动作,改变数据,生成一个新state,从而改变页面

接下来就用一个案例来演示用法吧,是一个增加和减少数量的案例

先安装Redux

sudo cnpm install redux --save

先创建一个仓库

const store = createStore(reducer)
reducer是需要我们定义传进去的

基本注释我都差不多写了

import React from 'react';
import ReactDOM from 'react-dom';
import Redux,{createStore} from 'redux'

// 用于通过动作创建新的state
const reducer = function(state={num:0},action){
  switch(action.type){
    case "add":
      state.num++;
      break;
    case "decrement":
      state.num--;
      break;
    default:
      break;
  }
  return {...state}
}

//创建仓库
const store = createStore(reducer)
console.log(store)

function add(){
  //通过仓库的方法dispatch进行修改数据
  // 可以传值,也可以传对象
  // store.dispatch({type:"add",content:{id:1,msg:"helloworld"}})
  store.dispatch({type:"add"})
}

function decrement(){
  //通过仓库的方法dispatch进行修改数据
  store.dispatch({type:"decrement"})
}

//函数式计数器
const Counter = function(props){
  let state = store.getState()
  return(
    <div>
      <h1>计数数量:{state.num}</h1>

      <button onClick={add}>计数+1</button>
      <button onClick={decrement}>计数-1</button>
    </div>
  )
}

ReactDOM.render(<Counter></Counter>,document.querySelector('#root'))

store.subscribe(()=>{
   ReactDOM.render(<Counter></Counter>,document.querySelector('#root'))
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值