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 AI
Atbilde no AI
Izpildot šo kodu konsolē, izvades secība būs šāda:
1
3
2
4
Skaidrojums:
- Renderējot App komponentu, vispirms tiek izpildīts
console.log('1'). - Tad tiek renderēts Child komponents, kur tiek izsaukts
console.log('3'). - Pēc renderēšanas pabeigšanas React izsauc
useEffectefektus to deklarēšanas secībā, bet tikai pēc komponentu montēšanas. - Vispirms tiek izpildīts App efekts (
console.log('2')), pēc tam Child efekts (console.log('4')).
Tādējādi, sinhroniskie žurnāli seko funkciju izsaukumu secībai, bet efekti tiek izpildīti pēc renderēšanas, to deklarēšanas secībā.