Redux的作用是什么?Redux的作用是实现状态传递和状态管理。这里你可能会说,如果是状态传递,那么我的道具传递也能达到这样的效果吗?contextscheme不也能达到这个效果吗?没错,是的,但是以上两种方案都有局限性。props方案仅适用于在父子组件之间传递状态。虽然上下文上下文方案可以在根组件上定义上下文,但是有两个缺点。只要上下文中的状态发生变化,就会重新渲染整个组件树,这会产生巨大的性能开销。组件逻辑与状态的耦合度太高,不利于解耦,即无法实现状态的统一管理。既然Redux的作用是管理和传递状态,那它的作用场景呢?当然你可以根据上面提到的两种方案选择使用Redux。Redux的本质是全局变量是协调和管理的。如果涉及多个状态,多个状态会被多个组件使用,比如商场中的购物车场景,可以毫不犹豫的考虑使用Redux。如果涉及到多个状态,但是虽然状态很多,但是只用到组件,或者用到相关组件,就不需要用Redux了。如果没有那么多状态,那么你就不需要使用Redux。另外,Redux还有一个好处就是不仅可以使用React本身,还可以使用其他的框架,比如jQuery、kerry_dom、vue等,但是相比vue,vue有自己更好的状态管理库vuex,嗯,废话不多说,我们先来看看Redux在项目中是如何使用的。Redux的使用//store.jsimport{createStore}from"redux";importreducerfrom"./reducer";exportdefaultcreateStore(reducer);//reducer.jsimport{cloneDeep}from'lodash';constinitilaValue={count:0};constreducer=(state=initilaValue,action)=>{state=cloneDeep(state)const{type,payload}=action;switch(type){case"add":state.count+=payload;休息;case"reduce":state.count-=payload;breakdefault:}returnstate;};exportdefaultreducer;//App.jsimportReact,{Component}from'react';importstorefrom"./store";导出默认类AppextendsComponent{componentDidMount(){//reducer不会触发页面变化,需要state来触发store.subscribe(()=>{this.setState(store.getState())})}render(){//获取reducer数据const{count}=store.getState()返回(
