Maison > Questions et réponses > le corps du texte
P粉8348408562023-08-19 00:29:53
Oui, c'est exact. Chaque rendu crée une nouvelle fonction, qui est ensuite remplacée par la fonction mise en cache.
L'accélération n'est pas due au fait de sauter l'étape de création de la fonction, mais au fait que d'autres codes sont capables de sauter leur propre travail. En effet, s’ils reçoivent la même fonction à chaque fois, ils savent que rien de pertinent n’a changé.
Par exemple, si vous devez inclure handleChange
传递给useEffect
dans un tableau de dépendances, il est important de passer une référence stable à chaque fois, sinon l'effet sera réexécuté à chaque rendu :
useEffect(() => { // ... 使用handleChange做一些事情 }, [handleChange]);
Ou si handleChange
作为prop传递给一个组件,并且该组件想要使用React.memo
saute le rendu. Le rendu ne peut être ignoré que lorsque les accessoires n'ont pas changé :
const Parent = () => { const handleChange = useCallback((ev) => { setMsg(ev.target.value); }, []); return <Child handleChange={handleChange}/> } const Child = React.memo(({ handleChange }) => { // ... 使用handleChange做一些事情 })