Javascript (D3+React_簡単なサンプル)
■D3+Reactでサンプルをつくる。
D3でグラフを作り、Reactでグラフ部分だけを更新するといった形で何か作りたい。
ReactでD3を使うために、まずコマンドプロンプトから npm install d3 でインストール。
コマンドを実行したパス配下に node_modules フォルダができてその中にd3関連のファイルが入った。

同じフォルダで npm list --depth=0 コマンドを実行してインストールされたことが確認できる。

簡単なサンプルを動かして動作確認(D3の公式関連のページを参考にした)。
import { useRef, useEffect, useState } from "react";
import * as d3 from "d3";
export default function App3() {
const [domainMax, setDomainMax] = useState(100);
const ref = useRef();
useEffect(() => {
const svgElement = d3.select(ref.current);
svgElement.selectAll("*").remove();
// 以前の軸を削除
const xScale = d3.scaleLinear()
.domain([0, domainMax])
.range([10, 290]);
const axisGenerator = d3.axisBottom(xScale);
svgElement.append("g")
.attr("transform", "translate(0,30)")
.call(axisGenerator);
}, [domainMax]); // domainMaxが変わったら再描画
return (
<div>
<div> <label>最大値: </label>
<input type="number" value={domainMax}
onChange={e => setDomainMax(Number(e.target.value))} />
</div>
<svg ref={ref} width={300} height={50} />
</div>);
}
目盛の最大値を変更して、バー上の表示を更新するサンプル。
スムーズに動いているように見えるけど、比較がないとなかなかありがたみが分からない。
とりあえずは D3+React で何か作る環境は整った。

