React-Hooks中的useReducer
用来践行Flux/Redux的思想
一共分为四步:
- 创建初始值initialState
const initial = {
n:0
}
- 创建所有操作
reducer(state,action)
const reducer = (state ,action)=>{
if(action.type === 'add'){
return{n:state.n+1}//+1操作
}else if(action.type === 'mult'){
return{n:state.n*2 } //*2操作
}else{
throw new Error ( 'unknown type' )
//type错误时报错
}
}
-
传给useReducer,得到读和写的API
-
调用写API,传入参数
({type:'操作类型'})
function App(){
const [ state,dispatch ] = useReducer( reducer, initial )
const {n} = state
const onClick = ()=>{
dispatch({type:'add'})
}
return(
<div className='app'>
<h1>n: {n}</h1>
<button onClick={onClick}>+1</button>
</div>
)
}
总的来说,useReducer是useState的复杂版
作者:卷毛肥宅
链接:https://juejin.cn/post/6878099754690019335
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2017-11-24 iOS方法重写
2016-11-24 Android 开发中 iBeacon的使用
2016-11-24 Android与IOS的UUID的区别
2016-11-24 android蓝牙4.0(BLE)开发之ibeacon初步
2016-11-24 Android 开发中 iBeacon的使用
2016-11-24 android setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds区别
2015-11-24 Swift 闭包表达式