Next.jsのチュートリアルをやってみた

FRONT END

LiSMOtechの小谷です。今回はNext.jsについてみていきます。今回使用したNext.jsのバージョンは11.1.2です。

今回はNext.jsのチュートリアルを実施し、所感やReact.jsとの違いを書いていけたらなと思います。

 

また、こちらの記事もレンダリングモードについての記載があるので、こちらの記事 も参考にして頂ければと思います。

Next.jsとは?

Next.jsは、React.jsをベースにしたフレームワークです。

React.jsやその他の類似のJSフレームワークを触った方であれば、そこまで抵抗なくチュートリアルの内容は取り込めると思います。

環境構築

環境構築はすでにnode.jsが入っている方であれば、簡単に作ることができると思います。node.jsのインストールなどはこちらの記事 のnode.jsインストール部分などを参考にして頂ければと思います。

今回はnode.jsが入っている前提で、進めます。

 

Next.jsの公式にもある以下のコマンドを実行します。

npx create-next-app

途中でプロジェクト名だけ聞かれるので、入力しましょう。
Nuxt.jsをやった後だと「あ、ここで聞かれるのプロジェクト名だけなんだ」と思うかもしれません。笑

完了後、以下のコマンドでプロジェクトのフォルダに行きましょう。

cd プロジェクト名

移動後、以下のコマンドで開発環境を立ち上げます。

npm run dev

チュートリアルでよいと思った点

チュートリアルは簡単なブログアプリを作ってみるという内容でした。

このチュートリアルだけではなかなか実感し辛かったですが、React.jsやその他のJSフレームワークに比べて、表示速度に力を入れている印象を受けました。

 

主に以下の理由があるのかと思います。

 

  • プレレンダリング

 Java Script ですべてのレンダリングを行うのではなく、あらかじめHTMLを生成しておくこと。

これを試すには、公式に書いてある記事通り、ブラウザでJava Scriptを無効にしても、画面が表示されることを見るとわかると思います。

 

  • 自動コード分割

ページはそのページで必要なものだけロードすることになっています。これにより、一つのページがレンダリングされる時は、他のページのコードは提供されないようです。

 

  • 専用のimage要素

Next.jsがデフォルトで画像最適化をサポートしています。ここはなかなか実感し辛いですが、必要以上に大きな画像を読み込まないようにしているようです。

 

あとは、フォルダの構成についてはページベースとなっており、わかりやすいものとなっていました。

チュートリアルで気になった点

チュートリアルをやっていて気になった点です。今のところの認識を書いて後で機会があれば調べたいです。

 

  • 各ページでのSSR(サーバーサイドレンダリング)とSG(静的生成)の切り替え方法

チュートリアル内の記載では、ページごとでSSRかSGなのか切り替えることができるとあります。

実装するには、Next.jsから提供されるメソッドのgetStaticPropsとgetServerSidePropsで使い分けて、SSRとSGを切り替えていくようになっているようです。

そこで、ページ内でgetStaticPropsを使ったらSGで、getServerSidePropsを使ったらSSRということでよいのか?と気になりました。

 

ちなみに、このgetStaticPropsはサーバー側の処理なので、コンソールなどはターミナルの方に出ます。試せていないですが、getServerSidePropsもおそらく同じだと思います。

 

  • <>とは?

チュートリアルの中であったのですが、HTML部分に<>というものが登場します。

以下のように使われていました。

<>

First Post

 

Back to home

</>

<>は僕はNext.jsで初めて見ました。templete タグみたいな感じで使っているので、そういう認識でよいのかな?と少し気になりましたね。

React.jsとの違い

今回チュートリアルをやってみて、そこから見えたReact.jsとの違いをあげていきます。

 

  • プレレンダリング機能・自動コード分割による表示速度

上記にも書いた点ですが、これによりReact.jsと比べて表示速度が速くなっていると思います。

 

  • ページ単位となっているフォルダ構造、ルーティング

ページを作成するときはpageフォルダに作成していき、それがそのままルーティングするときのパスとなるようになっています。

ここはNuxt.jsにも似ているところでNuxt.jsを触った方はイメージ付きやすいかもしれません。

 

  • Head要素を設定しやすい

Next.jsが提供してくれるHeadがあり、これを使い各ページごとにメタデータを設定することが出来ます。

これによりSEOの対策もしやすいと思います。

 

  • SSR(サーバーサイドレンダリング)できる

Next.jsによってできるレンダリングモードです。これをすることによってユーザーからの何らかのリクエストを受け取ることなく、ページを更新できます。

頻繁に更新されるデータを表示するページや毎回のリクエストごとに内容が変わるページなどで実装すると良いとされています。

ただ、SSRをするとなるとNode.jsを実行出来るWebサーバーが必要になり、環境を整える手間がかかるかもしれませんね。

まとめ

今回はチュートリアルを実施し、React.jsとの違いを見ていきました。

チュートリアルをやる前は、SSRをしたいが為のフレームワークかなと思っていましたが、色々とReact.jsと異なる点があり良いなと思いました。

チュートリアルはわかりやすい内容となっており、簡単な実装を通して学べるのでよいと思います!


ともに考え、寄り添う。プロのデザインチームが即参戦。

販促ツールや一貫したデザインによるブランド構築などビジネスの成長をデザインの力で促進します。

NEXTGATE LiSMOtechでは中小企業を中心にブランディング・WEBマーケティングを活用したWEB戦略を提供しています。

企業課題・問題に関するご相談、WEBサイト制作やグラフィックデザイン制作のクリエイティブに関するご相談やご質問、お見積りなどお気軽にお問い合わせください。

お得な情報がLINEに届く!!

LINE公式アカウントはこちらから。

友だち追加

最新記事

CONTACT

NEXTGATE LiSMOtechでは中小企業を中心にブランディング・WEBマーケティングを活用したWEB戦略を提供しています。
企業課題・問題に関するご相談、WEBサイト制作やグラフィックデザイン制作のクリエイティブに関するご相談やご質問、お見積りなどお気軽にお問い合わせください。

平日10:00〜19:00

お電話の場合こちらから

043-305-4162

平日10:00〜19:00