இரண்டும் விளைவுகளை இயக்குகின்றன, ஆனால் உலாவியின் வரைபடத்துடன் தொடர்புடைய வெவ்வேறு நேரங்களில் — மற்றும் அந்த நேர வேறுபாடு முழு புள்ளி.
இரண்டும் விளைவுகளை இயக்குகின்றன, ஆனால் உலாவியின் வரைபடத்துடன் தொடர்புடைய வெவ்வேறு நேரங்களில் — மற்றும் அந்த நேர வேறுபாடு முழு புள்ளி.
useEffect உலாவி வரைந்த பின்னர் இயக்குகிறது. இது ஒத்திசைவு இல்லாதது மற்றும் தடையில்லாதது. கிட்டத்தட்ட எல்லாவற்றிற்கும் (தரவு, சந்தா, மடிதல்) இதைப் பயன்படுத்தவும்.useLayoutEffect DOM மாற்றப்பட்ட பிறகு ஆனால் உலாவி வரைவதற்கு முன்பு ஒத்திசைவாக இயக்குகிறது. நீங்கள் தளத்தை படிக்க வேண்டிய மற்றும் பார்க்கக்கூடிய மினுக்கு தவிர்க்க அதே ஃபிரேமில் DOM ஐ மாற்ற வேண்டும் போது இதைப் பயன்படுத்தவும்.render → DOM updated → [useLayoutEffect runs] → browser paints → [useEffect runs]
ஒரு உறுப்பை அளவிட்டு அதன் அளவு அடிப்படையில் உதவிக்குறிப்பை மறுவரிசைப்படுத்துவதை கற்பனை செய்யுங்கள். useEffect மூலம், பயனர் உதவிக்குறிப்பை தவறான இடத்தில் சுருக்கமாகக் காணுவார், பின்னர் அது தாவும்:
useLayoutEffect(() => {
const { height } = ref.current.getBoundingClientRect();
setTooltipTop(-height); // applied BEFORE paint → no visible jump
}, []);
useEffect மூலம், அதே குறியீடு வரைபடத்திற்குப் பிறகு இயக்குகிறது → ஒரு ஃபிரேம் மினுக்கு.
useLayoutEffect இல் கனமான வேலை UI ஐ முறுக்குண்டதாக உணர்வுறுத்துகிறது, ஏனெனில் உலாவி முடியும் வரை வரைய முடியாது.கட்டைவிரல் விதி: useEffect க்கு இயல்பு; ஒத்திசைவான DOM அளவீடுகள்/மாற்றங்களுக்கு மட்டுமே useLayoutEffect பயன்படுத்தவும் இல்லையெனில் மினுக்குவிக்க முடியும்.
விரிவான பதில்களுடன் கூடிய IT நேர்காணல் கேள்விகளின் நூலகம் — Junior முதல் Senior வரை.
நன்கொடை