#DevHack: Next.js에서 초기 로드 JS 최적화
3493 단어 reacttypescriptwebdevjavascript
그것은 내 목록에서 최적화할 첫 번째 항목이 될 것이며, 이 숫자를 빨간색에서 녹색으로 가져옵니다.
이 첫 번째 로드 JS는 무엇입니까?
우선, 이것은 정확히 무엇입니까
First Load JS
? 설명서에는 값이 서버 페이지를 방문할 때 다운로드한 자산 수를 기반으로 한다고 명시되어 있습니다. 모두가 공유하는 JS의 양은 별도의 메트릭으로 표시됩니다.이해하기 쉽게 하기 위해 웹사이트에서 콘텐츠 렌더링을 시작하는 데 필요한 모든 것이 JS입니다. 이 첫 번째 로드 JS 번호를 낮추려면 더 적은 코드를 작성해야 합니다.
Info:
<===>
그것은 전적으로 사실이 아니며 달성하기 매우 어려울 수 있지만 번들/청크 크기를 줄여야 합니다.
첫 번째 로드 JS 크기를 낮추는 방법은 무엇입니까?
더 적은 의존성 사용
더 이상 필요하지 않은 참조할 수 있는 종속성이 있는지 코드를 확인하십시오.
나는 이것이 당신이 찾은 대부분의 기사가 이것을 말할 것이라는 것을 알고 있습니다. 그 이유는 매우 효과적이지만 달성하기 쉽지 않기 때문입니다. 대부분의 경우 이러한 종속성이 모두 필요합니다.
지연/동적 로딩 구성 요소 및 종속성
이러한 모든 종속성이 필요한 경우 지연되거나 동적으로 로드될 수 있는 항목을 확인하십시오. 이 접근 방식은 페이지의 모든 초기 구성 요소를 로드하고 덜 중요한 다른 구성 요소를 모두 비동기식으로 로드하거나 나중에 로드하더라도 문제가 되지 않음을 의미합니다.
이 접근 방식의 좋은 점은 사용하려는 종속성에 대한 React 구성 요소 모두에 대해 작동한다는 것입니다.
React를 사용할 때 일반적으로
React.lazy
를 사용하지만 Next.js와 함께 Server-Side Rendering을 사용하는 경우에는 작동하지 않습니다. 운 좋게도 동일한 작업을 수행하는 dynamic
라는 Next.js 종속성이 있습니다.import dynamic from 'next/dynamic';
// Loading StickerForm component, showing spinner while fetching the component
// Use it like you're use to <StickerForm />
const StickerForm = dynamic(() => import('./StickerForm'), { loading: () => <Spinner /> });
위에서 사이트에서 내 양식을 로드하는 방법의 예를 볼 수 있습니다. 이 동적 가져오기만 구현하여 첫 번째 로드 JS 크기를 89kB로 줄였습니다.
프로젝트마다 동일한 최적화를 달성하기 어려울 수 있습니다. 따라서 페이지에 즉시 필요하지 않은 이러한 구성 요소 또는 라이브러리를 찾으십시오. 예를 들어 기본적으로 접힌 부분 아래에 로드되는 구성 요소에 사용할 수 있습니다.
행복한 코딩
최초 게시 날짜: https://www.eliostruyf.com/devhack-optimizing-initial-load-js-nextjs/
Reference
이 문제에 관하여(#DevHack: Next.js에서 초기 로드 JS 최적화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/estruyf/devhack-optimizing-initial-load-js-from-next-js-5c3d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)