react中redux的原理理解以及基本使用

redux的使用:
在这里插入图片描述
1、我们来讲解以下这个redux的原理图:

React Components  =======》 吃饭的顾客
Action Creators =======》 服务员
Store =======》 饭店的老板(重中之重)
Reducers =======》 后厨

(1)、顾客到饭店里面,开始对着服务员说了很多废话(今天心情很好,天气很好等),最后才说了一句,要一份回锅肉套饭;
(2)、服务员直到最后才把顾客讲的话总结=》(要一份回锅肉套饭)do What,然后服务员把总结好的点餐信息汇总给老板下单;
(3)、老板接收到下单信息之后,就把下单的详细信息传递给后厨,让他根据顾客的下单信息来出菜;
(4)、后厨根据下单信息来出菜,并且判断这位顾客之前是否下过单,如果下过单,就把两次的下单信息合并,做好菜并把菜传递给老板;
(5)、老板就叫顾客来取餐;

2、我们来开始redux之旅

(1)、首先我们应该创建一个为组件服务的reducer,reducer的本质就是一个函数;该函数接受到两个参数,分别为之前的状态(preState)与操作(action);

//抛出reducer对象
export default function countReducer(preState = 0,action){
	//当没有传入preState时,就是当第一次初始状态时,preState的值为0
	// 解构赋值从action对象中获取type,data
	const {type,data} = action;
	switch (type) {
		case 'increment':
			return preState + data;
		case 'decrement':
			return preState - data;
		default:
		//当初始化操作时,直接返回preState = 0
			return preState;
	}
}

(2)、创建store对象并抛出

// 引入createStore,专门用于创建redux中最为核心的store对象
import { createStore } from "redux";
// 引入为count服务的reducer
import countReducer from './count_reducer';
//暴露store
export default createStore(countReducer)

(3)、为react组件生成action对象,也就是创建action creator

/*
该文件专门为count组件生成action对象
*/
export const createIncrementAction = data=>({type:'increment',data});
export const createDecrementAction = data=>({type:'decrement',data});

(4)、在react组件中使用redux

//获取reducer返回的状态
store.getState()
//使用store的dispatch方法,并且使用生成action的方法
store.dispatch(createIncrementAction(value*1))
// 在index.js中添加该段代码
//可以监听只要store中的值发生变化,就会更新视图
store.subscribe(()=>{
	ReactDOM.render(<App></App>,document.getElementById('root'))
})

综上,redux的基本使用就差不多啦。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值