<aside> 💡
JS 파일을 여러개로 나누고, 필요한 코드만 로드하는 기술
</aside>
async function loadModule() {
const { myFunction } = await import("./module.js");
myFunction();
}
// 1. 컴포넌트 로드
import React, { Suspense } from "react";
const LazyComponent = React.lazy(() => import("./LazyComponent"));
function App() {
return (
<Suspense fallback={<div>Loading...</div>}>
<LazyComponent />
</Suspense>
);
}
// 2. 페이지 단위로 로드
import React, { Suspense } from "react";
import { BrowserRouter, Routes, Route } from "react-router-dom";
const Home = React.lazy(() => import("./pages/Home"));
const About = React.lazy(() => import("./pages/About"));
function App() {
return (
<BrowserRouter>
<Suspense fallback={<div>Loading...</div>}>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/about" element={<About />} />
</Routes>
</Suspense>
</BrowserRouter>
);
}
1. dependOn
옵션 사용하기
2. SplitChunksPlugin
사용
module.exports = {
optimization: {
splitChunks: {
chunks: "all",
minSize: 20000,
maxSize: 0,
minChunks: 1,
maxAsyncRequests: 30,
maxInitialRequests: 30,
automaticNameDelimiter: "~",
name: true,
},
},
};
<aside> 💡
사용되지 않는 코드 제거
</aside>