ν”„λ‘ νŠΈμ—”λ“œ μ½”λ“œ μŠ€ν”Œλ¦¬νŒ…: 라우트 기반 및 μ»΄ν¬λ„ŒνŠΈ 기반 | MLOG | MLOG ); } export default App;

이 μ˜ˆμ œμ—μ„œ MyComponentλŠ” React.lazy()와 동적 μž„ν¬νŠΈλ₯Ό μ‚¬μš©ν•˜μ—¬ μ§€μ—° λ‘œλ”©λ©λ‹ˆλ‹€. Suspense μ»΄ν¬λ„ŒνŠΈλŠ” μ»΄ν¬λ„ŒνŠΈκ°€ λ‘œλ“œλ˜λŠ” λ™μ•ˆ 폴백 UIλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

예제 (Intersection Observer API)


import React, { useState, useEffect, useRef, Suspense, lazy } from 'react';

const MyComponent = lazy(() => import('./MyComponent'));

function App() {
 const [isVisible, setIsVisible] = useState(false);
 const componentRef = useRef(null);

 useEffect(() => {
 const observer = new IntersectionObserver(
 ([entry]) => {
 setIsVisible(entry.isIntersecting);
 },
 { threshold: 0.1 }
 );

 if (componentRef.current) {
 observer.observe(componentRef.current);
 }

 return () => {
 if (componentRef.current) {
 observer.unobserve(componentRef.current);
 }
 };
 }, []);

 return (
 
{isVisible ? ( λ‘œλ”© 쀑...
}> ) : (
자리 ν‘œμ‹œμž μ½˜ν…μΈ 
)} ); } export default App;

이 μ˜ˆμ œλŠ” Intersection Observer APIλ₯Ό μ‚¬μš©ν•˜μ—¬ μ»΄ν¬λ„ŒνŠΈκ°€ λ·°ν¬νŠΈμ— ν‘œμ‹œλ  λ•Œλ₯Ό κ°μ§€ν•©λ‹ˆλ‹€. isVisible μƒνƒœ λ³€μˆ˜λŠ” ꡐ차 μƒνƒœμ— 따라 μ—…λ°μ΄νŠΈλ˜λ©°, MyComponentλŠ” ν‘œμ‹œλ  λ•Œλ§Œ λ‘œλ“œλ©λ‹ˆλ‹€.

μ»΄ν¬λ„ŒνŠΈ 기반 μ½”λ“œ μŠ€ν”Œλ¦¬νŒ…μ˜ μž₯점

μ»΄ν¬λ„ŒνŠΈ 기반 μ½”λ“œ μŠ€ν”Œλ¦¬νŒ…μ˜ 단점

μ˜¬λ°”λ₯Έ μ ‘κ·Ό 방식 선택

μ½”λ“œ μŠ€ν”Œλ¦¬νŒ…μ— λŒ€ν•œ μ΅œμƒμ˜ μ ‘κ·Ό 방식은 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ νŠΉμ • νŠΉμ„±μ— 따라 λ‹€λ¦…λ‹ˆλ‹€. λ‹€μŒμ€ λͺ‡ κ°€μ§€ 일반적인 μ§€μΉ¨μž…λ‹ˆλ‹€:

도ꡬ 및 기술

μ—¬λŸ¬ 도ꡬ와 기술이 μ½”λ“œ μŠ€ν”Œλ¦¬νŒ…μ— 도움이 될 수 μžˆμŠ΅λ‹ˆλ‹€:

전역적 고렀사항

μ½”λ“œ μŠ€ν”Œλ¦¬νŒ…μ„ κ΅¬ν˜„ν•  λ•Œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ‚¬μš©μžμ— λŒ€ν•œ 전역적인 영ν–₯을 κ³ λ €ν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€. μ—¬κΈ°μ—λŠ” λ‹€μŒκ³Ό 같은 μš”μ†Œκ°€ ν¬ν•¨λ©λ‹ˆλ‹€:

κ²°λ‘ 

μ½”λ“œ μŠ€ν”Œλ¦¬νŒ…μ€ ν˜„λŒ€ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ„±λŠ₯을 μ΅œμ ν™”ν•˜κΈ° μœ„ν•œ μ€‘μš”ν•œ κΈ°μˆ μž…λ‹ˆλ‹€. μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ½”λ“œλ₯Ό μ „λž΅μ μœΌλ‘œ 더 μž‘μ€ 청크둜 λ‚˜λˆ„κ³  ν•„μš”μ— 따라 λ‘œλ“œν•¨μœΌλ‘œμ¨ κ°œλ°œμžλŠ” 초기 λ‘œλ“œ μ‹œκ°„μ„ 크게 쀄이고, μ‚¬μš©μž κ²½ν—˜μ„ κ°œμ„ ν•˜λ©°, λ¦¬μ†ŒμŠ€ μ‚¬μš©μ„ μ΅œμ ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 라우트 기반, μ»΄ν¬λ„ŒνŠΈ 기반 λ˜λŠ” 이 λ‘˜μ˜ μ‘°ν•© 쀑 μ–΄λ–€ 것을 μ„ νƒν•˜λ“ , μ½”λ“œ μŠ€ν”Œλ¦¬νŒ…μ˜ 원리와 κΈ°μˆ μ„ μ΄ν•΄ν•˜λŠ” 것은 λΉ λ₯΄κ³  λ°˜μ‘μ„±μ΄ λ›°μ–΄λ‚˜λ©° μ „ μ„Έκ³„μ μœΌλ‘œ μ ‘κ·Ό κ°€λŠ₯ν•œ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ΅¬μΆ•ν•˜λŠ” 데 ν•„μˆ˜μ μž…λ‹ˆλ‹€.

μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ„±λŠ₯을 μ§€μ†μ μœΌλ‘œ λͺ¨λ‹ˆν„°λ§ν•˜κ³  λΆ„μ„ν•˜μ—¬ κ°œμ„ ν•  뢀뢄을 νŒŒμ•…ν•˜κ³  μ‹œκ°„μ΄ 지남에 따라 μ½”λ“œ μŠ€ν”Œλ¦¬νŒ… μ „λž΅μ„ κ°œμ„ ν•˜λŠ” 것을 μžŠμ§€ λ§ˆμ„Έμš”.

더 μ•Œμ•„λ³΄κΈ°