useState
- 如果state是一个对象,setState是否可以自动合并属性
回答:不可以局部更新
- state地址要变,不变不渲染。因此必须要用新对象
- setState接受函数
useReducer
初始化initialState
创建reducer(state, action)function(state, action) {
switch(action.type) {
case 'add':
case 'mul':
}
}
传给useReducer 得到读写api
const [state, dispatch] = useReducer(reducer, initialState)
useEffect
模拟ComponentDidMount
useEffect(()=>{
console.log(‘first’)
}, [])
模拟ComponentDidUpdate
useEffect(()=>{
console.log(‘任意属性变了’)
})
useEffect(()=>{
console.log(‘n属性变了’)
}, [n])
模拟ComponentWillUnmount
useEffect(()=>{
console.log(‘first’)
return ()=>{
console.log(‘组件要死了’)
}
})
useMemo
可以作为性能优化的手段