[Next.js] Next.js 에서 Plotly.js 사용하기

김방울·2022년 11월 28일

Next.js

목록 보기
1/7

🌟 react-plotly.js 2.6.0 버전을 기준으로 작성되었습니다.

Next.js에서 일반 모듈들을 import 하는 것처럼 Plotly.js 를 불러오려고 하면 에러가 출력됩니다.

import Plot from 'react-plotly.js';

Plotly.js는 렌더링하는 동안 window 등의 브라우저 API에 의존하기 때문에, 컴포넌트가 최초로 생성되는 시점이 브라우저가 아닌 Node.js 환경인 서버 사이드 렌더링(SSR)에서는 브라우저 객체에 접근이 불가능해 에러가 발생합니다.

import dynamic from 'next/dynamic';
import Loading from '../../common/Loading';

const Plot = dynamic(
  () => import('react-plotly.js'),
  {
    ssr: false,
    loading: () => <Loading mode='local' />, // 로딩 중에 보여줄 컴포넌트
  },
);

모듈을 import할 때, 다음과 같이 next/dynamic 을 이용하여 SSR 서버 렌더링을 비활성화한 뒤 불러오면 라이브러리를 정상적으로 불러올 수 있습니다.

🌟 클라이언트 측에서 구성 요소를 동적으로 로드하려면 ssr서버 렌더링을 비활성화하는 옵션을 사용할 수 있습니다. 이는 외부 종속성 또는 구성 요소가 window와 같은 브라우저 API에 의존하는 경우에 유용합니다.

데이터가 없어서 앙상하지만... 아무튼 불러오기 성공!🤗


참고자료

profile
코딩하는 고양이🐱 / UI Developer, Front-end Developer

0개의 댓글