Skip to content

Commit

Permalink
Merge pull request #45 from Atotti/Ritsu
Browse files Browse the repository at this point in the history
14-17
  • Loading branch information
hashiringo authored Jan 10, 2024
2 parents 15b43dc + 3bc423b commit b89abc3
Show file tree
Hide file tree
Showing 4 changed files with 85 additions and 0 deletions.
36 changes: 36 additions & 0 deletions Ritsu/chapter14/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# レイアウトとページの作成

## ダッシュボードページの作成

入れ子構造の`page.tsx``/`を用いることで表示することが可能。
Next.js では`page`という名前をつけ、
```
export default function Page() {
return <p></p>;
}
```
とすることでUIコンポーネントを同じ場所に配置することができる。

## ダッシュボードレイアウトの作成
Next.jsでは`layout.tsx`ファイルを使用して、複数のページ間で共有されるUIを作成することができる。以下その内容。

```
import SideNav from '@/app/ui/dashboard/sidenav';
export default function Layout({ children }: { children: React.ReactNode }) {
return (
<div className="flex h-screen flex-col md:flex-row md:overflow-hidden">
<div className="w-full flex-none md:w-64">
<SideNav />
</div>
<div className="flex-grow p-6 md:overflow-y-auto md:p-12">{children}</div>
</div>
);
}
```

- `<SideNav />`コンポーネントをレイアウトにインポート。
- `<Layout />`コンポーネントは`children`プロパティを受け取り、ページまたは別のレイアウトのいずれかになる。

## ルートレイアウト
`/app/layout.tsx`はルートレイアウトと呼ばれ、ここで追加したUIはアプリケーション内のすべてのページで共有される。
14 changes: 14 additions & 0 deletions Ritsu/chapter15/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# ページ間の移動

## `<Link>`コンポーネント
`<Link />`コンポーネントを使用することでアプリケーション内のページ間をリンクすることができる。このコンポーネントを使用するには`<a>``<Link>`に置き換える。
例えば、`<a href='...'>`の代わりに`<Link href='...'>`を使用する。

## 自動コード分割とプリフェッチ
Next.jsはアプリケーションをルートセグメントごとに自動的にコード分割する。これは、従来のReact SPA とは異なる。ブラウザは初期ロード時にすべてのアプリケーションコードをロードする。
コードをルートごとに分割すると、ページが分離され、たとえ特定のページでエラーが発生しても、アプリケーションの残りの部分は引き続き動作する。
さらに、宛先ページのコードはすでにバックグラウンドで読み込まれており、これによりページ遷移は瞬時に行われる。

## アクティブリンクの表示
URLからユーザーの現在のパスを取得することができる`usePathname()`というフックが用意されている。
これはフックなので、そのファイルはクライアントコンポーネントに変える必要がある。
9 changes: 9 additions & 0 deletions Ritsu/chapter16/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# データベースのセットアップ

- GitHubリポジトリの作成
- vercelアカウントの作成
- プロジェクトに接続してデプロイする
- Postgres データベースの作成
- データベースをシードする
- データベースを探索する
- クエリの実行
26 changes: 26 additions & 0 deletions Ritsu/chapter17/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# データの取得
## データの取得方法の選択
- API
APIは、アプリケーションコードとデータベースの間の中間層。APIの利用ケースはいくつかある。
- APIを提供するサードパーティサービスを使用している場合。
- クライアントからデータを取得する際、データベースの情報が漏れることを避けるために、サーバー上で実行されるAPI層が必要。
Next.jsでは、ルートハンドラーを使用してAPIエンドポンンとを作成できる。

- データベースクエリ
フルスタックアプリケーションを作成する場合は、データベースの利用が必要。
- APIエンドポイントを作成するときは、データベースと対話するロジックを作成する必要あり。
- React Server Components(サーバー上のデータを取得)を使用している場合は、APIレイヤーをスキップして、データベースの秘密をクライアントに公開する危険を冒さずにデータベースに直接クエリを実行できる。

- SQLの使用
SQLは、リレーショナルデータベースにクエリを実行するための業界標準。


### サーバーコンポーネント
デフォルトでは、Next.jsアプリケーションはReact Server Components を使用する。これを利用したデータの取得は比較的新しいアプローチであり、いくつか利点がある。
- サーバー上で実行されるため、追加のAPI層を使用せずに直接クエリを実行できる。
- 特定のデータを取得して操作できる。

## ダッシュボード概要ページのデータ取得

## 並列データフェッチ

0 comments on commit b89abc3

Please sign in to comment.