Sobes.tech
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 useEffect efektus 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ā.