[javascript] Recharts에서 로딩 레이어를 표시하는 방법은 무엇인가요?
Loader
컴포넌트 사용: 먼저, 로딩 레이어를 표시하기 위해 Recharts의Loader
컴포넌트를 사용할 수 있습니다. 이 컴포넌트는 데이터가 로딩되는 동안 표시되며, 데이터 로딩이 완료되면 자동으로 사라집니다. 예를 들어, 다음과 같이 사용할 수 있습니다:
import React, { useState, useEffect } from 'react';
import { LineChart, Line, XAxis, YAxis, CartesianGrid, Loader } from 'recharts';
const MyChart = () => {
const [loading, setLoading] = useState(true);
const [data, setData] = useState([]);
useEffect(() => {
// 데이터 로딩
// ...
// 데이터 로딩이 완료된 후 로딩 상태 변경
setLoading(false);
}, []);
return (
<>
{loading && <Loader />}
<LineChart width={500} height={300} data={data}>
{/* 차트 구성 요소 */}
</LineChart>
</>
);
}
export default MyChart;
- Overlay로 로딩 레이어 구성: 또 다른 방법은 Recharts의 기능을 사용하여 로딩 레이어를 구성하는 것입니다. 예를 들어, 다음과 같이
CartesianGrid
의background
속성을 사용하여 로딩 레이어를 표시할 수 있습니다:
import React, { useState, useEffect } from 'react';
import { LineChart, Line, XAxis, YAxis, CartesianGrid } from 'recharts';
const MyChart = () => {
const [loading, setLoading] = useState(true);
const [data, setData] = useState([]);
useEffect(() => {
// 데이터 로딩
// ...
// 데이터 로딩이 완료된 후 로딩 상태 변경
setLoading(false);
}, []);
return (
<LineChart width={500} height={300} data={data}>
<CartesianGrid background={loading ? 'rgba(0, 0, 0, 0.2)' : 'none'} />
{/* 차트 구성 요소 */}
</LineChart>
);
}
export default MyChart;
위의 예제에서 CartesianGrid
의 background
속성은 loading
상태에 따라 배경색을 변경합니다. 데이터가 로딩 중일 때는 투명한 배경으로 로딩 레이어를 표시하고, 데이터 로딩이 완료되면 배경이 투명해집니다.
이러한 방법 중 하나를 선택하여 Recharts에서 로딩 레이어를 손쉽게 표시할 수 있습니다.