더 나은 성능을 위해 React Router로 동적 가져오기에 반응
10216 단어 javascriptbeginnersreactwebdev
동적 가져오기란 무엇입니까?
Dynamic Imports
는 런타임에 동적으로 가져올 수 있는 방법을 제공합니다.동적 가져오기를 사용하여 네트워크 페이로드 줄이기
import React from 'react';
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
import About from './components/About';
import Home from './components/Home';
import Main from './components/Main';
import Navbar from './components/Navbar';
function App() {
return (
<Router>
<Navbar />
<Routes>
<Route path="/main" element={<Main />} />
<Route path="/about" element={<About />} />
<Route path="/" element={<Home />} />
</Routes>
</Router>
);
}
CRA로 프로젝트를 설정했습니다. 라우터와 세 페이지가 있습니다.
빌드할 때 App, About, Home, Main, Navbar 파일을 모두 하나의 파일로 묶어야 합니다.
어느 페이지에 있든 처음 웹 사이트에 들어가면 모든 페이지가 포함된 번들 파일을 다운로드하게 됩니다.
앱이 느려지는 이유 중 하나가 되어야 합니다.
이 시점에서
dynamic imports
를 사용하여 네트워크 트래픽을 줄일 수 있습니다.번들 크기는
350kb
입니다. 이미 꽤 작지만 실제 세계에서는 클 것입니다.생각해보자. 번들 크기가 메가 바이트라면 모바일로 접속하거나 인터넷 속도가 느린 사용자에게는 의심할 여지 없이 문제가 될 것입니다.
dynamic imports
, React.lazy
, React.Suspense
를 사용하겠습니다.React.lazy
함수를 사용하면 동적 가져오기를 일반 구성 요소로 렌더링할 수 있습니다. docs React.Suspense
구성 요소가 렌더링되기 전에 무언가를 "대기"할 수 있습니다. 런타임에 모듈을 가져오면 페이지의 js 파일이 런타임에 다운로드됩니다. 이는 사용자가 다운로드가 완료될 때까지 기다려야 함을 의미합니다.
React.Suspense
로 로딩 화면을 렌더링할 수 있습니다.import React, { lazy, Suspense } from 'react';
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
import Navbar from './components/Navbar';
const About = lazy(() => import('./components/About'));
const Home = lazy(() => import('./components/Home'));
const Main = lazy(() => import('./components/Main'));
function App() {
return (
<Router>
<Navbar />
<Suspense fallback={<>loading...</>}>
<Routes>
<Route path="/main" element={<Main />} />
<Route path="/about" element={<About />} />
<Route path="/" element={<Home />} />
</Routes>
</Suspense>
</Router>
);
}
export default App;
이제 번들 크기가 줄었습니다.
페이지에 들어가면 페이지의 스크립트 파일이 다운로드되기 시작합니다.
결론
공연을 위해
dynamic imports
를 사용하는 방법은 다양합니다. 나는 단지 사용법을 조금 다루었습니다. 나는 이것이 모든 React
프로젝트에서 실용적인 채택 중 하나일 수 있다고 생각했습니다. 도움이 되길 바랍니다.공연에 즐겨 사용하는 방법이 있다면. 아래 댓글로 알려주세요.
감사합니다. 행복한 코딩 :)
Reference
이 문제에 관하여(더 나은 성능을 위해 React Router로 동적 가져오기에 반응), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/lico/react-dynamic-imports-with-react-router-in-performance-3amh텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)