React ChartsJS 是一个基于 React 的图表库,它封装了 Chart.js,使得在 React 应用中使用图表变得更加简单。Chart.js 是一个轻量级的 JavaScript 图表库,支持多种图表类型,并且易于集成到任何 Web 应用中。
流式传输实时数据 指的是数据以连续的方式实时传输到前端应用,通常用于需要实时更新的场景,如股票行情、实时监控等。
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
setInterval(() => {
const data = { time: new Date(), value: Math.random() * 100 };
wss.clients.forEach(client => {
if (client.readyState === WebSocket.OPEN) {
client.send(JSON.stringify(data));
}
});
}, 1000);
import React, { useEffect, useRef } from 'react';
import { Line } from 'react-chartjs-2';
const RealTimeChart = () => {
const chartRef = useRef(null);
const [data, setData] = React.useState({
labels: [],
datasets: [
{
label: 'Real-time Data',
data: [],
fill: false,
borderColor: 'rgb(75, 192, 192)',
tension: 0.1
}
]
});
useEffect(() => {
const ws = new WebSocket('ws://localhost:8080');
ws.onmessage = (event) => {
const newData = JSON.parse(event.data);
setData(prevData => ({
labels: [...prevData.labels, newData.time],
datasets: [{
...prevData.datasets[0],
data: [...prevData.datasets[0].data, newData.value]
}]
}));
};
return () => ws.close();
}, []);
return (
<Line ref={chartRef} data={data} options={{ responsive: true }} />
);
};
export default RealTimeChart;
问题1:数据更新不及时
问题2:图表性能问题
问题3:跨域问题
通过上述步骤和代码示例,可以实现一个基本的 React ChartsJS 流式传输实时数据的图表应用。
领取专属 10元无门槛券
手把手带您无忧上云