${id} は JavaScriptのテンプレートリテラル の構文で、変数を埋め込むために使う。
const id = 5;
const url = `/PickupThread/${id}`; // 結果: "/PickupThread/5"
navigate(url); // id を含めて画面遷移
つまり、${id}
を使うと、実際の投稿ID(例えば 5)が入ったURL に展開される!
一方、:id
は React Router のルート(パスパラメータ) の定義として使います。 ルートを設定する際に、動的なパスとして IDが変わる部分を :id で指定 します。
<Route path="/PickupThread/:id" element={<PickupThread />} />
この書き方で、React Router に「id
の部分は任意の数値が入るよ」と伝えている! そのため、実際のURLが/PickupThread/3
や/PickupThread/10
になったとき、useParams()
を使って:id
の値を取得 できる
const { id } = useParams(); // URLの :id
の部分を取得