Open2

next.jsの学習

スジ彫りのマサスジ彫りのマサ

next.jsでPJを作成

PJ作成コマンド
npx create-next-app@latest

聞かれてることの意味↓(参考)
https://zenn.dev/ikkik/articles/51d97ff70bd0da

ディレクトリ構成

全部yesの場合のディレクトリ構成

.
├── components
├── node_modules
├── public
└── src

・今までのpage-routerではsrc直下にpagesディレクトリが生成されていたが、
app-routerを導入している場合、src直下にappディレクトリが生成される

・router機能を利用する場合、app直下にrouteのpassと紐づくディレクトリ(例:home)を作成し、page.tsxファイルを追加する。
(page.tsxは従来のpage-routerにおけるindex.tsxと同じ役割)

.
└── app
    ├── favicon.ico
    ├── globals.css
    ├── home
    │   └── page.tsx
    ├── layout.tsx
    └── page.tsx

・_ から始まる名前のディレクトリを、ルーティング制御から除外してくれる。

そのようなコードの置き場として、ルーティング対象外になる _something/ のようなディレクトリを利用することができます。
app/_utils/dete-time-format.ts
日付フォーマットの関数を export
app/_components/Button.ts
汎用ボタンコンポーネント
引用元
https://zenn.dev/yumemi_inc/articles/next-13-app-overview

コンポーネント追加後のディレクトリ構成

.
└── app
    ├── _components
    │   └── registerButton.ts
    ├── favicon.ico
    ├── globals.css
    ├── home
    │   └── page.tsx
    ├── layout.tsx
    └── page.tsx

サーバー起動

サーバー起動
npm run dev

ルーティングの確認
http://localhost:3000/home

参考

app-router、ディレクトリ構成の解説
https://www.zenryoku-kun.com/post/nextjs-app-router#about-app-routing

nextを使ったPJの立ち上げ
https://zenn.dev/stripe/books/stripe-nextjs-use-shopping-cart/viewer/step1_setup_nextjs

スジ彫りのマサスジ彫りのマサ

整理中

ディレクトリ構成案(コンポーネントの構成について)

.
└── app
    ├── _components // システム共通のものはapp配下に
    │   └── registerButton.ts
    ├── favicon.ico
    ├── globals.css
    ├── home
    │   ├── _components // ページやルートで共通のものはroute配下に
    │   │   └── homeInputForm.ts
    │   └── page.tsx
    ├── layout.tsx
    └── page.tsx

参考
layoutの使い方。app-routerにおけるファイル規則
https://qiita.com/FAL-coffee/items/e4bcc16b065a737c9537

layoutのpageごとの切り替え
https://blog.furu07yu.com/entry/using-route-groups-for-layouts-in-nextjs-13

use clientて何?
https://zenn.dev/luvmini511/articles/ec0e874a2cc1f1

components内のpropsの書き方
https://zenn.dev/ttani/articles/nextjs_basic_learning#コンポーネントへのpropsでの値の受け渡し

S3ホスティング設定
https://nextjs.org/docs/pages/building-your-application/deploying/static-exports

amplify使ったデプロイ
https://docs.aws.amazon.com/ja_jp/amplify/latest/userguide/deploy-nextjs-app.html

reactの型指定
https://qiita.com/hinako_n/items/97ccaf85eb40d7e45657#usestate状態変数の型

next.js + axios
https://qiita.com/TERNS_admin_JP/items/c684ad5e7effb7a8ed90

onclickなどでイベント毎に要素に引数を渡したい場合
https://qiita.com/tobita0000/items/9cfa933324a3f6fe504d

react hooksの理解
https://qiita.com/seira/items/e62890f11e91f6b9653f