@tokugawa_klee (na ta)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

HTMLとNext.jsのサーバサイドとの連携方式の違いについて

Q&A

Closed

こんにちは。
問題解決の質問というより、技術的な質問になります。
おそらく初歩的すぎる質問なので温かく回答いただけると幸いです。

サーバサイドをGo言語(gin)、フロントサイドはHTMLのWEBアプリを作成しています。
昨今の情勢やダイナミックルーティングが使用したいという点から、フロントサイドにNEXT.jsを採用しようかなと考え学習しているのですが、サーバとフロントの接続方法が根本的に違っているのか?と躓いております。

具体的にブラウザからのリクエストがあった時の流れですが、以下のような違いがあると思っています。


【HTMLの場合】
サーバサイド(GO)が応答→下記のようなコードでHTMLファイルをレスポンス(出力したい変数tagも同時に連携)

	router.GET("/", func(ctx *gin.Context) {
		ctx.HTML(200, "index.html", gin.H{"tag": tag})
	})

【Next.jsの場合】
フロントサイド(Next.js)が応答→フロントサイド(Next.js)がサーバサイド(GO)へデータ取得のリクエスト→サーバサイド(GO)が応答→フロントサイド(Next.js)がブラウザへレスポンス


ここからが質問の本題ですが、
まず、この考えは正しいでしょうか?
正しければ、Next.jsの場合サーバとフロントのデータ取得連携部分が非常に難しいと感じております。
個人開発のような小規模なWEBアプリではNext.jsを使用するべきではないでしょうか?

よろしくお願いいたします。

1 likes

2Answer

Next.jsはフロントもサーバ側もどちらも行ってくれるフレームワークです。
なので、サーバ側とフロント側のデータ連携に関しては自分で処理を書かなくてもNext.jsがよしなにしてくれます。
そのため、個人開発には割と使用しやすい方かなと思います。(私もよく使っています。)

サーバとフロントはCSR,SSG,SSR,ISRなど、いろんな仕組みで繋がっているので、ここには書ききれませんが、もしサーバとの連携が気になるのであればこのあたりの技術を調べてみるとよいかもしれません。

ご自身で一度試しに使ってみると、私なんかの説明よりよく分かると思いますm(__)m

0Like

Comments

  1. @tokugawa_klee

    Questioner

    回答ありがとうございます!
    処理を書かなくてもNext.jsがよしなにしてくれるとは・・・凄いですね。

こんにちは。

先ほど記事を拝見させていただきました。
「HTMLとNext.jsのサーバサイドとの連携方式の違いについて」という内容が非常に興味深く、本当に勉強になりました。

特に、HTMLの場合とNext.jsの場合で、ブラウザからのリクエストからサーバーとのデータ連携までの流れを比較されている点がとても分かりやすく、これまで曖昧だった部分についても理解を深めることができました。

技術的にも非常に興味深い内容で、読んでいて多くのことを学ばせていただきました。本当に素晴らしい記事だと感じています。

私自身もWeb開発を主な業務としている開発者で、普段からWebアプリケーションやシステム開発に携わっております。そのため、今回の記事を拝見して、技術的な考え方や開発についてぜひ一度お話ししてみたいと思いました。

また、もし今後ご一緒できる機会がございましたら、ぜひ一度コラボレーションさせていただきたいと考えております。 お互いの知識や経験を共有しながら、一緒に面白いWebサービスやアプリケーションを開発できれば、とても嬉しく思います。

このように突然ご連絡する形になってしまい、また少々長いメッセージとなってしまい申し訳ございません。今回の記事に非常に興味を持ち、ぜひ感想をお伝えしたいと思い、ご連絡させていただきました。

今後、この記事で取り上げられている内容や、Next.jsとGoの連携方法などについて、もし機会がございましたら、ぜひいろいろと意見交換やお話をさせていただければ嬉しく思います。

お忙しいところ、最後までお読みいただきありがとうございます。
もし少しでもご興味を持っていただけましたら、ぜひお気軽にご連絡いただけますと幸いです。

今後ともどうぞよろしくお願いいたします。

0Like

Your answer might help someone💌