const render =useCallback(()=>{let list =[]for(var i =0; i < range.max; i++){
list.push(<li key={i}>{i}</li>)}return list
},[range])// 第二个参数表依赖项,依赖变化了才会重新渲染const Foo =memo(props =>{console.log('useCallback')return(<><p>{props.count}</p><ul>{props.render()}</ul></>)})
useMemo
固定的是值,会将函数执行
const render =useMemo(()=>{let list =[]for(var i =0; i < range.max; i++){
list.push(<li key={i}>{i}</li>)}return list
},[range])// 注意:子组件的render函数不需要执行const Foo =memo(props =>{console.log('useCallback')return(<><p>{props.count}</p><ul>{props.render}</ul></>)})