Сейчас у меня есть такой компонент React:
Код: Выделить всё
export function Chart() {
const id = useId();
const lc = useContext(LCContext);
useEffect(() => {
const container = document.getElementById(id) as HTMLDivElement;
if (!container || !lc) {
return;
}
const chart = lc.ChartXY({
container,
});
const lineSeries = chart
.addLineSeries({
schema: {
x: { pattern: "progressive" },
y: { pattern: null },
},
})
.setMaxSampleCount(100_000);
const ws = new WebSocket(wsUrl);
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
lineSeries.appendJSON(data);
};
return () => {
chart.dispose();
ws.close();
};
}, [id, lc]);
return ;
}
В идеале я хотел бы использовать только одно соединение с веб-сокетом из внешнего интерфейса и разделить его на множество диаграмм, но я не знаю, как реализовать это с помощью React. Ищете какие-либо рекомендации по этому поводу, особенно с учетом производительности.
Чтобы быть более ясным, цель — это информационная панель с большим количеством отдельных диаграмм, каждая из которых показывает прокручиваемые линейные диаграммы. Данные x — это время, а y могут представлять собой различные измерения. Вот документы в библиотеке диаграмм: https://lightningchart.com/js-charts/docs/
Подробнее здесь: https://stackoverflow.com/questions/798 ... -component
Мобильная версия