const render =useCallback(()=>{let list =[]for(var i =0; i < range.max; i++){list.push(<li key={i}>{i}</li>)}return list
},[range])// 第二個(gè)參數(shù)表依賴項(xiàng),依賴變化了才會(huì)重新渲染const Foo =memo(props =>{console.log('useCallback')return(<><p>{props.count}</p><ul>{props.render()}</ul></>)})
useMemo
固定的是值,會(huì)將函數(shù)執(zhí)行
const render =useMemo(()=>{let list =[]for(var i =0; i < range.max; i++){list.push(<li key={i}>{i}</li>)}return list
},[range])// 注意:子組件的render函數(shù)不需要執(zhí)行const Foo =memo(props =>{console.log('useCallback')return(<><p>{props.count}</p><ul>{props.render}</ul></>)})