踩坑总结
- useState:
- 作为组件的常量,个人理解为组件的依赖项,每次更新state都会让整个组件重新执行更新
- useState(() => {console.log('初始化执行一次')}),useState默认值为函数时,会在初始化时直接执行一次这个函数,而不是默认值为函数。官方定义:惰性初始化。PS: 想要默认值为函数 useState(() => () => {})
- setState('a', () => {})在修改state后想要立即执行某个操作,直接传递给setState第二个参数即可
- useRef:
- useRef不是定义一个组件依赖项,所以他的修改不会引起组件的重新执行更新