- 一个变量可能经常发生改变,且只在很少的页面使用到,可以单独抽离hook,并存储到redux中
- 不怎么变化的,可以直接放在util中初始化时引入方法获取,然后存储到redux或provider中
1. useState中的setXxx函数是异步的
1 | function Count { |
2. setState函数式更新可以拿到上一次的值
1 | setCount(preValue => preValue + 1) |
3. 惰性初始化state
1 | // 如果初始 state 需要通过复杂计算获得,则可以传入一个函数,在函数中计算并返回初始的 state,此函数只在初始渲染时被调用 |
4. State为对象时,更新值需要手动合并对象
1 | const [params, setParams] = useState(initParams) |
5. ref中的变量发生改变不会触发组件重渲染
1 | const numberRef = useRef(0) |
6. 用ref获取上一轮的 props 或 state
1 | const [count, setCount] = useState(0); |
7. useImperativeHandle
使得父组件通过ref可以调用到子组件的方法
1 | function App() { |
8. Callback ref:每当dom变化时都可以收到通知,实现及时测量到真实dom的大小
1 | function MeasureExample() { |
9. useReducer惰性初始化
1 | function init(initData) { |