https://nextjs.org/docs/app/getting-started/layouts-and-pages の Dynamic Segments
フォルダを [slug] のように角括弧で囲むだけです:
app/
blog/
page.tsx → /blog
[slug]/
page.tsx → /blog/hvne7mr7ysx6 など
App Router (Next.js 15以降) ではそうです。以前は同期的に受け取れましたが、非同期になりました。
// Next.js 15以降
const { id } = await params // awaitが必要
よって、paramsはPromiseカタ
。TypeScript で「この値は非同期で返ってくる」という型を表すときに Promise<>
Promise<{ id: string }>
// 「{ id: string } を返す Promise」という意味
client.getListDetailある?
getListDetail<Blog>(...)
// → Promise<Blog & MicroCMSContentId & MicroCMSDate> が返ってくる
引数の型は { endpoint, contentId, queries } で固定です。
Linkはhrefです!
await忘れず
HTML エンティティがそのまま表示