Middle
import { useState, useEffect } from 'react'; export default function App() { console.log('1'); useEffect(() => { console.log('2'); }, []); return <Child />; } function Child() { console.log('3'); useEffect(() => { console.log('4'); }, []); return <div>Bcraft</div>; }
sobes.tech MI
Válasz az MI-től
A kód futtatásakor a konzolon a következő sorrendben jelennek meg az eredmények:
1
3
2
4
Magyarázat:
- Az App komponens renderelésekor először a
console.log('1')fut le. - Ezután a Child komponens renderelése történik, ahol a
console.log('3')kerül meghívásra. - A render befejezése után a React meghívja a
useEffecthatásokat a deklarációjuk sorrendjében, de csak a komponensek mountolása után. - Először az App hatása (
console.log('2')), majd a Child hatása (console.log('4')) fut le.
Így a szinkron logok a függvényhívások sorrendjét követik, míg a hatások a render után, a deklarációjuk sorrendjében kerülnek végrehajtásra.