状态管理hook

useState

useState常见的两种赋值方式
setCount(1)
setCount(c=>c+1)
如果setCount(c+1) //这样有问题,一直是同一个值

useReducer

  1. function countReducer(state,action){
  2. switch(action.type) {
  3. case 'add':
  4. return state+1
  5. case 'minus':
  6. return state-1
  7. default:
  8. return state
  9. }
  10. }
  11. function MyCountFunc(){
  12. const [count,dispatchCount]=useReducer(countReducer,0);
  13. useEffect(()=>{
  14. const interval=setInterval(()=>{
  15. dispatchCount({type:'add'})
  16. },1000)
  17. return ()=>{
  18. clearInterval(interval)
  19. }
  20. },[])
  21. return <span>{count}</span>
  22. }

useEffect

1、只有一个参数

  1. useEffect(()=>{
  2. console.log('1、初始化的时候打印 2、每次更新的时候打印');
  3. return ()=>{
  4. console.log('1、初始化的时候不执行 2、')
  5. }
  6. })

useMemo

  1. useCallback