本文目录导航:
- React 形态治理打算对比:Recoil Redux useContext
- React形态治理:react-redux和redux-saga(适宜由vue转到react的同窗)
- 游戏里redux什么意思
React 形态治理打算对比:Recoil Redux useContext
形态治理处置打算的比拟理论集中在Redux、Recoil以及经常使用React Context API与useReducer hook的方法。
在这篇文章中,我将经过成功一个蕴含多个页面、且需共享和治理计数器形态的义务,来对这三种打算启动对比剖析。
特意提及的是,Recoil是一种由Facebook开发的形态治理库,因此在打算中或者较少被提及,但值得留意的是,其配置与体现值得咱们讨论。
数据治理被视为前端开发环节中的外围局部。
理论,开发者偏差于将接口数据与本地形态离开治理,以防止不用要的数据混杂。
关于本地形态的治理,这里介绍经常使用如React Query这类工具,而非间接依赖于Redux处置一切形态,以确保代码的灵敏性和高效性。
咱们的指标需求如下:设计一个运行,蕴含“首页”与“关于页”两个页面,区分有一个计数器。
指标是确保这两个页面能够共享和访问相反的计数器形态。
接上去,咱们将经过详细的代码片段对这三种形态治理打算启动对比。
在代码展示和成功局部,请参照代码注释以极速检查成功环节,同时为了浏览便利,关于简短的代码块,咱们将跳过详细成功细节的重复展现。
Redux 打算:Redux提供了一个一致的形态存储处置打算,并经常使用actions和reducer来治理运行的全局形态。
咱们首先定义了两个slices,区分为“首页”和“关于页”的形态治理逻辑,而后在store中注册这些逻辑。
Redux须要咱们自己编写包装层以取得类型审核配置,确保代码的强健性和分歧性。
经常使用Context API与useReducer hook:此方法在下层创立一个共享的高低文,并经常使用useReducer hook来修负数据。
这个打算下,咱们创立了一个HomeContext,该下层容器担任高低文的封装,而数据修正逻辑则经过useReducer hook成功。
Recoil打算:Recoil的经常使用则便捷得多。
只有在下层容器中经常使用RecoilRoot,即可将所需的形态高低文引入其中。
这种打算尤其适宜须要治理复杂形态,且宿愿缩小组件间的间接耦合的场景。
最后,依据上述对比,我介绍的优先顺序是Recoil > useContext + useReducer > Redux > 其余打算。
理由基于它们在性能、代码整洁度以及易于治理和保养等方面的综合体现。
React形态治理:react-redux和redux-saga(适宜由vue转到react的同窗)
留意:本文不会把一切常识点都写一遍,并不适宜纯新手浏览
首先 Redux 是一种形态治理打算,自身和react并没有什么咨询,redux也可以联合其余框架来用。
react-redux 是基于react的一种形态治理成功,他不像vuex那样间接内置在create-react-app里,须要自己去装置。
react-redux有三个关键概念,区分是:store,action,reducer。
。
store就是存储全局数据形态的仓库。
像这样:
须要留意的是,state是 只读的 ,象征着咱们不能 1 = 233 这样去修正store里的数据。 其实,上班的名目里,仓库并不是放在里,里普通是做一些创立store,注册saga的操作,state普通是放在详细模块的里(一个模块应该有,,三个文件)
。
上文说了,state是只读的,所以咱们只能经过派发action的模式修正store里的数据。
派发action这个说法我不时感觉很拗口,其实就是dispatch action的直译。
action蕴含两局部:type和payload。
type其实就是action的标识,一个常量的字符串,用来说明这个action是干嘛的,比如说 type:GET_USERNAME ,说明这个action是用来失掉username的,payload就是参数了,就是调用api须要的参数。
留意:action是派发给store的。
。
reducer接纳一个state和action,前往一个state。
store在接纳到action之后会把action和以后的state传给reducer,而后reducer依据action的type去判别口头什么样的操作,而后前往一个新的state给store,比如: return {,name:接口失掉到的username} 。
上班流程图如下:
这个流程还是蛮好懂的,接上去咱们来说下reducer要留意的中央。
(这里牵扯到咱们为什么还要用redux-saga) reducer必需是一个 纯函数 纯函数是指一个函数的前往结果只依赖于该函数传入的参数,而不能发生 反作用 反作用是指异步操作,DOM操作等... 好的,没明确是吧,说人话,reducer里是不能启动异步恳求的!咱们在上班中必需会调用接口异步失掉数据的,这样的话只靠react-redux是不可满足咱们的需求的,而redux-saga就是来处置这个疑问的。
假设你相熟vuex,就知道vuex里有mutation和action,其中mutation提交降级数据的方法,只能是同步的,而action中就可以蕴含异步操作了,而且action提交的是mutation。
mutation和action的相关就近似于reducer和saga的相关:saga里调用接口失掉到数据之后再提交action给reducer,最终前往新的state给store的还是reducer。
saga蕴含watch-saga函数和worker-saga函数,watch-saga用于监听系统派收回来的action,watch-saga一旦监听到了某个action就口头对应的worker-saga,worker-saga里启动异步操作(调用接口恳求数据等),拿到数据之后派发第二个action给store,store再把state和action给reducer(至此就和无saga时的流程一样了)。
添加了saga,上班流程出现了变动: 咱们留意到上班流中的action有两个,可以了解为第一个action是给watch-saga的,第二个action时异步操作完之后worker-saga给store的。
添加saga后的上班流程如下:
游戏里redux什么意思
Redux可以用于治理游戏中的形态和数据流,提高游戏的可保养性和可裁减性。
1.引言
Redux是一种用于Javascript运行程序的形态治理工具,罕用于React运行程序中。
在游戏开发中,Redux也被宽泛运行,用于治理游戏中的形态和数据流。
本文将从不同角度解释Redux在游戏中的意义。
的基本概念
Redux是一种形态治理工具,它的外围概念包括:store、action和reducer。
store是运行程序的形态存储器,action是形容形态变动的对象,reducer是依据action来降级store中的形态。
经过这些概念,Redux可以成功运行程序的形态治理和数据流控制。
在游戏中的意义
在游戏开发中,Redux可以用于治理游戏中的形态和数据流。
例如,可以经常使用Redux来治理游戏中的玩家形态、游戏关卡形态、游戏道具形态等。
经过Redux,可以成功游戏形态的一致治理和控制,从而提高游戏的可保养性和可裁减性。
在游戏中的运行
Redux在游戏中的运行十分宽泛,可以用于各种类型的游戏开发。
例如,可以经常使用Redux来治理角色形态、游戏关卡形态、游戏道具形态等。
在实践开发中,可以依据游戏的需求来设计和成功相应的Redux架构。
在游戏中的长处
相比于传统的游戏开发模式,经常使用Redux可以带来以下几个长处:一是可以成功游戏形态的一致治理和控制,提高游戏的可保养性和可裁减性;二是可以成功游戏形态的可预测性,从而提高游戏的稳固性和牢靠性;
6.拓展常识:Redux的其余运行
除了在游戏开发中,Redux还可以运行于其余畛域。
例如,在Web运行程序中,Redux可以用于治理用户形态、页面形态、数据流等。
在移动运行程序中,Redux可以用于治理运行程序形态、用户形态、数据流等。
因此,Redux是一种十分通用的形态治理工具,可以运行于各种类型的运行程序开发。
7.论断
综上所述,Redux是一种用于Javascript运行程序的形态治理工具,罕用于React运行程序中。
在游戏开发中,Redux可以用于治理游戏中的形态和数据流,提高游戏的可保养性和可裁减性。
Redux还可以运行于其余畛域,是一种十分通用的形态治理工具。