userReducer Hook
userReducer Hook
我们会问它是干嘛的?解决的是状态共享?
Reducer : 二个参数(state,action) 一个返回值 return值。
先来上个例子:
import React, { useReducer } from 'react';
function Counter() {
const [sum, dispatch] = useReducer((state, action) => {
return state + action;
}, 0);
return (
<>
{sum}
<button onClick={() => dispatch(1)}>
Add 1
</button>
</>
);
}
我们先来理解下:
1)数组中有二个参数:sum及dispath, 对应用的是useReducer,这个里面接收二个值,一个是箭头函数Reducer,一个是默认值。
sum对应state,dispath对应action
2)这里的sum的默认值是0,也就是第二个参数,当我们dispatch(1)的时候,自动会计算state+action,一开始是0+1=1,然后是1+1=2
这样sum的值也是2,显示出来也是2。
state可以是任何值,它不一定是一个对象,可以是一个数字,一个数组,或者其他任何类型。
再来一个例子:
import React, { useReducer } from 'react';
function ReducerDemo(){
const [count, dispatch] = useReducer((state, action)=>{
switch(action){
case 'add':
return state+1
case 'sub':
if(state<=1){
return 0;
}
return state-1
default:
return state
}
},0)
return(
<div className="Example-left10">
<h2>现在的分数是{count}</h2>
<button onClick={()=>{dispatch('add')}} className="Example-left10">Add 1</button>
<button onClick={()=>{dispatch('sub')}} className="Example-left10">Dec 1</button>
</div>
)
}
export default ReducerDemo
以上的例子都是我改造于网络,感谢各位小伙伴。
参考:
道法自然

浙公网安备 33010602011771号