Next.js

https://nextjsjp.org/docs/app/api-reference/file-conventions/page 途中
https://nextjsjp.org/docs/app/getting-started/layouts-and-pages 途中


1Next.js16において、App Routerであり、page.jsやroute.jsがないとき公開ルートにはならないので、通常のコロケーションでも可能
2_で始まるフォルダはルーティング対象外である。
Next.js はファイルシステムベースのルーティングを使用、ページ(app ディレクトリ内にpage ファイルを追加で/)とレイアウトを作成できる(レイアウトは、複数のページ間で共有される UI )ナビゲーション時に、レイアウトはステータスを保持し、対話的で、再レンダリングされません。 children プロップを受け入れる
ルートレイアウトは必須であり

app/page.tsx       -> /
 app/blog/page.tsx     -> /blog
 app/blog/[slug]/page.tsx -> /blog/abc
フォルダ名を角括弧で囲む(例:[slug])と、動的ルートセグメントが作成されます。


Page コンポーネントは、そのディレクトリの page.tsx に書きます。
イ ルートセグメントからそのページまでの動的ルートパラメーターを含むオブジェクトに解決するPromiseです。
paramsプロップはPromiseであるため、値にアクセスするにはasync/awaitまたはReactのuse関数を使用する必要があります。

searchParams(オプション)

現在のURLの検索パラメーターを含むオブジェクトに解決するPromiseです。以下に例を示します:





実務上は、app 配下でそのルート専用の部品なら _components、アプリ全体で共有するならルート直下の components/src/components/ に置く、で問題ないです
実務では「今の責務」で置き場所を決めて、後で昇格させるのが普通です。
 app/dashboard/_components/Chart.tsx
 最初は dashboard 専用なのでここでよい。
 後から他の画面でも使うなら:
 components/Chart.tsx
 または src/components/Chart.tsx に移す。