【完全保存版】Next.js App Routerのベストプラクティスを解説

  Рет қаралды 20,482

Shin Coding Tutorial

Shin Coding Tutorial

Күн бұрын

Пікірлер: 43
@あっきー-i9j
@あっきー-i9j 2 ай бұрын
Next.jsの考え方の著者です。取り上げていただきありがとうございます
@programming_tutorial_youtube
@programming_tutorial_youtube 2 ай бұрын
あっきーさんですね!! こちらこそ!!執筆していただいて大変ありがとうございます (動画で勝手に紹介してしまって、申し訳ございませんでした...) とても分かりやすくて僕としても大変勉強になりました。今後も随時、参考にさせていただきます🥲🥲
@mac3752
@mac3752 23 күн бұрын
必要な部分のみが簡潔にまとまっていてとてもわかりやすかったです!ありがとうございます
@やま-k6k3u
@やま-k6k3u 3 ай бұрын
1時間40分越え!気合い入ってますね。いつも動画を楽しみにしてます!
@programming_tutorial_youtube
@programming_tutorial_youtube 3 ай бұрын
全ては説明できませんでしたが、いつの間にか長くなっちゃいました😇 ありがとうございます!お時間のある時に見ていただけると嬉しいです
@林翔太-k9g
@林翔太-k9g 2 ай бұрын
昼休みに1週間かけて拝見しました。有益な動画をありがとうございます!開発する中で再度この動画や参考にあげれたサイトを確認しようと思います!
@programming_tutorial_youtube
@programming_tutorial_youtube 2 ай бұрын
林さんですね!! 先日はご丁寧なDMありがとうございました。 そして1週間かけてみてくださいまして、嬉しい限りでございます ぜひ、開発の一助になれば幸いです。これからもお互いに開発がんばっていきましょう!
@林翔太-k9g
@林翔太-k9g 2 ай бұрын
先日は突然のDMに丁寧にお返事をいただきありがとうございました🙇 良いアウトプットができましたら、また報告させてください! これからも学ばせていただきます!
@kumonopanya
@kumonopanya 3 ай бұрын
app router は便利すぎる page routerにはもう戻れない
@programming_tutorial_youtube
@programming_tutorial_youtube 3 ай бұрын
今ならapprouter利用率が高そうですよね
@ookuraseiya6980
@ookuraseiya6980 2 ай бұрын
天才っす。 一生着いていきます。
@kk-ft1nx
@kk-ft1nx 3 ай бұрын
神動画ありがたき幸せ🙏🙏
@euledge6852
@euledge6852 3 ай бұрын
ちょうど今、app router入れるかどうか悩んでいた時なので助かる
@ZeroIchiEngineer
@ZeroIchiEngineer 3 ай бұрын
先月から勉強させていただいてます! ありがとうございます!
@わわ-r5o1n
@わわ-r5o1n 3 ай бұрын
いつもためになる動画をありがとうございます! マインドマップ凄く分かりやすかったので配布して欲しいです!!
@programming_tutorial_youtube
@programming_tutorial_youtube 3 ай бұрын
こちらこそ、いつもありがとうございます! 分かりました!概要欄に記載しておきますね。
@わわ-r5o1n
@わわ-r5o1n 3 ай бұрын
@@programming_tutorial_youtube ありがとうございます!
@HaluNo9
@HaluNo9 3 ай бұрын
これ素晴らしいー!!
@にら君クリエイティ部
@にら君クリエイティ部 3 ай бұрын
ありがたい
@naotoishii5165
@naotoishii5165 Ай бұрын
とても勉強になりました。ありがとうございます! 一点質問させてください。動画内で紹介いただいた4つのキャッシュについては以下のようなイメージでキャッシュの有無が確認されていく感じでしょうか。(長文申し訳ありません。 **①ユーザがページにアクセス** ↓ **②クライアントのRouter Cacheにて、静的/動的部分のキャッシュの有無を確認** - 全てのキャッシュあり - キャッシュを利用して、静的/動的部分をすぐに画面に表示 → 処理終了 ↓ **③サーバーのFull Route Cacheにて、②で表示できなかった静的部分のキャッシュの有無を確認** - あり(SSG/ISRのキャッシュ) - キャッシュを利用して、静的部分をすぐに画面に表示 - なし(SSG/ISRのキャッシュが切れてる場合) - オリジンサーバから静的部分を取得し、Full Route CacheにSETした上で、静的部分を画面に表示 ↓ **④サーバーのRequest Memoizationにて、②で表示できなかった動的部分と同一リクエストの結果がキャッシュにあるか確認** - あり - キャッシュを利用して、動的部分をすぐに表示 → 処理終了 ↓ **⑤サーバーのData Cacheにて、動的部分のキャッシュの有無を確認** - あり(SSG, ISR) - 動的部分をすぐに画面に表示 → 処理終了 - なし - SSG/ISRでキャッシュが切れてる場合 - オリジンサーバからデータを取得し、Data CacheとRequest MemoizationにSETした上で、画面に表示 → 処理終了 - SSR - オリジンサーバからデータを取得し、Request MemoizationにSETした上で、画面に表示 → 処理終了 ※動的部分について、データ取得中は、loading.jsやSuspenseのfallbackUIが表示される。
@BB-bw8gs
@BB-bw8gs 6 күн бұрын
初めまして。 ウェブ系プログラミング初心者で、自作のブログ(技術系、趣味系)を作成しようと考えていますがその場合PageRouterとAppRouterどちらで進めるのが良いと思いますでしょうか? 競プロやゲームプログラミング等は常々触れている身です。 アドバイス頂けると幸いです。
@programming_tutorial_youtube
@programming_tutorial_youtube 6 күн бұрын
どちらでも良いと思います! ですがAppRouterが主流ですので、AppRouterが良いと個人的に思いますね! 僕の教材は全てAppRouterでやっていこうと思っておりますので。
@programming_tutorial_youtube
@programming_tutorial_youtube 6 күн бұрын
​ @BB-bw8gs Gatbyでもいいと思います! Astroでもなんでも良いですね!ブログであればですね。 CMSはMicroCMSかContentLayerまたはNotionをCMSにしても良いと思います。 いろんなCMSがありますので、調べてみると良いですね。もちろん自作CMSでも良いと思いますが。
@BB-bw8gs
@BB-bw8gs 6 күн бұрын
@@programming_tutorial_youtube ありがとうございます。間違えてコメント消してしまいました申し訳ないです。 先程Udemyのnext.js13でマイクロブログ作成購入させて頂きましたのでそちらベースでまず流れ掴んでみます。 nortionベースにする講座もあったかと思いますので拝見させてもらおうと思います!
@粢田博也
@粢田博也 3 ай бұрын
ちょうどリプレイスの設計をしているので非常に有益な動画ありがとうございます! API Handlerでfetchした場合はデフォルトのキャッシュは使えないとのことでしたが、API HandlerをBFFとした構成で、フロントエンドからはAPIHandlerのエンドポイントを呼ぶ場合は、デフォルトのキャッシュが働く認識でいいんでしょうか? 現在バックエンドから不要なデータが返りすぎているので、API HandlerをBFFサーバーとして間に挟む構成で進めています。
@programming_tutorial_youtube
@programming_tutorial_youtube 3 ай бұрын
どうもご視聴ありがとうございます! フロントからAPIHandlerをfetchで呼び出すときにはデフォルトでキャッシュが働きます。なのでご認識の通りです!
@kentamikuriya
@kentamikuriya 3 ай бұрын
いつもありがとうございます。 質問失礼します。 57:20~で、CacheはVercelにホスティングするのであれば、CDNやEdge Serverに格納されるとおっしゃられております。 こちらもしVercel以外にホスティング(AWS, GCP等)した場合、Cacheの格納先を自分たちで構築する必要があるという認識でしょうか。
@programming_tutorial_youtube
@programming_tutorial_youtube 3 ай бұрын
SSGやISRなどのレンダリングはNext.jsの機能ですので、Vercel以外でも動きます(ISRはVercelで最適化されているのでISRを使う場合はVercelになると思います)。 たとえば、SSGで作ったサイトをAWSでデプロイする場合、SSGのレンダリング(ビルド時にデータ取得&静的化)は行われますが、DataCacheは行われるかどうかは定かではありません(これは僕の知識不足です。) もしもキャッシュされない場合は、SSGで出力した静的ファイルをS3にアップロードし、それをCloudFrontを利用してCDNキャッシュする必要があるかもです。 Amplifyでデプロイした場合は、自動でキャッシュを良しなにやってくれるかもですが、、詳細はちょっと分からないですね、、すみません。GCPも同様だと思います。 Vercel以外でもキャッシュの基本的な恩恵は受けられるみたいですが、グローバルCDN配信に自動で対応していないホスト先ではCDNキャッシュ設定など手動で行う必要があるかもです。
@sado4148
@sado4148 3 ай бұрын
ありがとうございます! 一点質問です、Route Handlerを使わなくてもよいなどと触れてましたが、Next.jsだけでサーバ側も実装する場合、fetchを用いてキャッシュの取り扱いをして恩恵受けるには、Route Handlerに記載したapiを呼ぶのがキャッシュ再検証などもできて便利じゃないかなと思ったのですが、いかがでしょうか? (サーバコンポーネントでそのままPrismaなど用いてデータ呼び出す場合キャッシュが使えなくないですか?)
@sado4148
@sado4148 3 ай бұрын
あっ勘違いしてました。 いままでTanStackQueryを使ってクライアント側でフェッチしてユーザーごとにキャッシュを持たせていたのですが、Next.jsのfetchの場合サーバーサイドでのフェッチになるので、全体のキャッシュになるのですね(ユーザーごとではない) この場合って、キャッシュ使わなくてもサーバーサイドでPrismaなど用いてapi叩かなくてもデータをDBから返却できるので、パフォーマンスいいよねって話なのでしょうか?
@programming_tutorial_youtube
@programming_tutorial_youtube 3 ай бұрын
@@sado4148 そうですね。prismaを利用したデータ取得の場合であればroute handlerを使ってAPIを作る必要はないかなと思っています。 サーバーコンポーネントでのフェッチになりますので、ご認識の通りパフォーマンスが良くなります。ですがサーバーサイドでのキャッシュが付かないので、その場合は ・メモ化(request memoizationと同等)したいのであればcache() ・複数ユーザー間でキャッシュ(Data Cacheと同等だと思います)したいのであればunstable_cache() でprismaを使った関数をラップしてあげるといいですね。 unstable_cacheは名前の通り安定ではないバージョンですので、今後名前の変更があると思います。
@sado4148
@sado4148 3 ай бұрын
ありがとうございます!
@KittaYoshio
@KittaYoshio 3 ай бұрын
いつも拝見させていただいてます。初学者で恐縮ですが質問させてくださいませ。 Next.jsだとuseClientを利用することによりCSRは構築可能、SSRも基本的に構築可能です。 ReactはCSR(SPA)のみなので、大は小を兼ねる。。。という意味で Next.jsを採用すればどちらでも転ぶことができるのでよいのかな・・・?と思ったのですが安直でしょうか・・?
@programming_tutorial_youtube
@programming_tutorial_youtube 3 ай бұрын
いいと思いますよ! あまりにもリアルタイム性を要求するアプリであればReactだと思いますが、Next.jsで始めるのは良い選択だと思います。
@ねこうま-r2s
@ねこうま-r2s Ай бұрын
Tanstack queryでサーバーコンポーネント側でフェッチするときはprefetchしてクライアント側にキー指定で受け渡すみたいな感じであってますでしょうか、、?
@the_oneironaut
@the_oneironaut 3 ай бұрын
Que legal.
@sisindu
@sisindu 2 ай бұрын
フロントばっかりしてる人はアプリ開発とかゲーム開発とかしてみると良いと思う。なんたらなんたらオレオレパターンが多すぎてカオスになりすぎ。
@user-jl9ki6ih5p
@user-jl9ki6ih5p 3 ай бұрын
container presenパターンだと、SEO的に残したいところもクライアントコンポになっちゃうところが悩みどころなんだよな〜 分かる同士いる?😊
@programming_tutorial_youtube
@programming_tutorial_youtube 3 ай бұрын
なるほど、確かにクライアントコンポだとSEO的に弱いですね。 RSCPayload削減かのトレードオフになりそうですね...
@あっきー-i9j
@あっきー-i9j Ай бұрын
Next.jsはクライアントコンポーネントをサーバー側「でも」レンダリングしてHTMLにするので、SEOに弱いということはないです! 一方サーバーコンポーネントはサーバー側で「のみ」レンダリングされます。
@programming_tutorial_youtube
@programming_tutorial_youtube Ай бұрын
@@あっきー-i9j あ!そうなのですね、、 てっきりクライアント側のみでレンダリングするのかと思っていました、、 これから説明する際は気を付けたいと思います🙌
【Next.jsの新時代】ストリーミングとPPR(Partial Pre Rendering)を解説します
17:15
プログラミングチュートリアル
Рет қаралды 7 М.
あなたはどのレンダリングパターンを採用しますか?【CSR/SSR/SSG/ISRを図解で解説】
34:32
Cat mode and a glass of water #family #humor #fun
00:22
Kotiki_Z
Рет қаралды 42 МЛН
Try this prank with your friends 😂 @karina-kola
00:18
Andrey Grechka
Рет қаралды 9 МЛН
UFC 310 : Рахмонов VS Мачадо Гэрри
05:00
Setanta Sports UFC
Рет қаралды 1,2 МЛН
2024年版「Webアプリ作るなら技術どれにする?」
38:18
ムーザルちゃんねる
Рет қаралды 42 М.
知らないとあぶない?Next.jsセキュリティの話
15:54
ムーザルちゃんねる
Рет қаралды 10 М.
【Prisma入門】次世代ORMで簡単にデータベース管理ができるようになろう
45:08
プログラミングチュートリアル
Рет қаралды 16 М.
【Cloudflare Workers】Bun+HonoでREST APIを作成① 効果的なhonoルーティングの秘訣
15:05
TypeScriptでフルスタックエンジニアになる
Рет қаралды 1,3 М.
Next.jsのディレクトリ構成のベストプラクティスを知っていますか?
23:17
プログラミングチュートリアル
Рет қаралды 18 М.
【AIだけじゃない】AI以外の今後流行る技術3選
13:12
しまぶーのIT大学
Рет қаралды 68 М.
【React Hooks入門】完全初心者OK!8種類のHooksを学んでReactの理解を深めよう
59:10
プログラミングチュートリアル
Рет қаралды 71 М.
Cat mode and a glass of water #family #humor #fun
00:22
Kotiki_Z
Рет қаралды 42 МЛН