Redux状态管理

1、三大原则:单一数据源、state是只读的(Redux中state的更改,其实是创建了一个全新的state)、使用纯函数来执行修改

1)将整个应用的state储存在唯一的store对象中

2)state只能通过触发action来修改,其中action就是一个描述性的普通对象

3)使用reducer来描述action如何修改state

2、store

1)创建store:createStore(reducer,[initialState],enhancer)

import {createStore} from redux;

function todos(state=[],action){

  switch(action.type){

  case 'ADD_TODO':

      return state.concat([action.text]);

  default:

      return state;

  }

}

let store=createStore(todos,['HTML']);

store.dispatch({

    type:'ADD_TODO',

    text:'CSS'

})

console.log(store.getState());

2)store的API

dispatch(action):触发action

getState():获取当前的state

subscribe(listener):注册一个监听函数,state发生变化时触发

replaceReducer(nextReducer):替换reducer

3、action

1)action是一个普通的描述性对象

{

type:'ADD_RECIPE',

meal:["rich","milk"]

}

2)action creator:对action做了简单的封装

function addRecipe=({day,recipe,meal})=>{
    return {
        type:ADD_RECIPE,
        day,
        recipe,
        meal
    }
};

4、reducer

纯函数:只要传入的参数相同,那么返回的state就一定相同。

function food(state={},action) {
   switch (action.type){
       case ADD_RECIPE:
           const { recipe }=action;
           return {
               ...state,
               [recipe.label]:recipe
           };
       default:
           return state;
   }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值