React
跟useState类似,可以缓存返回值,有点类似useMemo的阉割版,只有返回功能,不具有set功能
当使用useMemo时,会返回缓存的数据,子组件不会因为父组件重新呈现而重新呈现
来个例子,当点击button的时候,因为name没变,对Child来说,不需要做重新呈现,那么使用useMemo即可实现这一点
const Child = memo(({data}) =>{
console.log('child render...', data.name)
return (
<div>
<div>child</div>
<div>{data.name}</div>
</div>
);
})
const Hook =()=>{
console.log('Hook render...')
const [count, setCount] = useState(0)
const [name, setName] = useState('rose')
const data = useMemo(()=>{
return {
name
}
},[name])
return(
<div>
<div>
{count}
</div>
<button onClick={()=>setCount(count+1)}>update count </button>
<Child data={data}/>
</div>
)
}