Frontend/Apache Echarts

[echarts] Apache Echarts 브라우저 크기에 따라 자동 사이즈 조정

Dogvelop 2023. 9. 22. 15:08

chart를 만들었는데, 모니터 크기나 브라우저 크기에 맞지 않을 때가 있다.

이어지는 내용에선 위와 같은 경우에 chart크기를 자동으로 조정하는 방법을 서술한다.

 

React + Typescript 환경에서의 코드이다.

useEffect(() => {
    if (chartRef.current) {
      const chart = echarts.init(chartRef.current);

	  // option은 따로 지정해뒀다고 가정한다.
      chart.setOption(option);

      // 크기가 변경될 경우 chart가 resize되는 function을 만든다.
      window.onresize = function () {
        chart.resize();
      };

      // 창 크기 조절 이벤트 리스너 등록
      window.addEventListener("resize", () => chart.resize());

      return () => {
        // 창 크기 조절 이벤트 리스너 삭제
        window.removeEventListener("resize", () => chart.resize());
      };
    }
  }, [option, chartRef]);

return (
    <div className={styles.component}>
      <div ref={chartRef} style={{ height: 250 }} />
    </div>
);

이와 같이 이미 Apache echarts 에는 resize function이 존재한다.
이를 window.onresize를 통해 화면 크기에 변화가 생겼을 경우 useEffect로 감지하여 function을 적용시켜 주기만 하면 된다.