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 Süni İntellekt
AI-dan cavab
Bu kodu konsolda icra etdikdə, çıxış sırası aşağıdakı kimi olacaq:
1
3
2
4
İzah:
- App komponenti render edilərkən əvvəlcə
console.log('1')icra olunur. - Sonra Child komponenti render edilir və burada
console.log('3')çağırılır. - Render tamamlandıqdan sonra React
useEffecteffektlərini elan olunduqları sırayla çağırır, lakin yalnız komponentlər montaj edildikdən sonra. - Əvvəlcə App-dən (
console.log('2')), sonra Child-dən (console.log('4')) effektlər işləyir.
Beləliklə, sinxron loglar funksiyaların çağırış sırasını izləyir, effektlər isə renderdən sonra və elan olunduqları sırayla işləyir.