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_で始まるフォルダはルーティング対象外である。
3Next.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です。以下に例を示します:
searchParamsは**Dynamic APIであり、その値を事前に知ることはできません。これを使用すると、ページがリクエスト時に動的レンダリング**にオプトインされます。searchParamsはURLSearchParamsインスタンスではなく、プレーンなJavaScriptオブジェクトです。
実務上は、app 配下でそのルート専用の部品なら _components、アプリ全体で共有するならルート直下の components/ や src/components/ に置く、で問題ないです
実務では「今の責務」で置き場所を決めて、後で昇格させるのが普通です。
app/dashboard/_components/Chart.tsx
最初は dashboard 専用なのでここでよい。
後から他の画面でも使うなら:
components/Chart.tsx
または src/components/Chart.tsx に移す。