似て非なる
新サイト制作プロジェクトにNuxt.jsを採用したものの、
どうも仕様変更やそもそも最新版に対応していない機能が多すぎるため先日乗り換えを決心しました。
いくつか選択肢はありましたが、結局「Next.js」という似たり寄ったりなフレームワークを選択。
そして昨日、今日と環境構築をしていろいろいじってみているところです。
Nuxt.jsがVue.jsのフレームワークであるのに対してNext.jsはReactのフレームワークです。
このVue.jsとReactはよく比較されることがあるのですが、
2020年時点で自分が認識していたかぎり、「Vue.jsの方がとっつきやすくReactは難しい」
というのが一般的な評判だったと思います。少なくとも自分の周りではそうでした。
だからこそ、とっつきやすさ重視でVue.jsを選択したわけです。
Reactは難しいという評判が先行していたので敬遠していました。
しかし実際に両方いじってみると大差ないような気がします。
むしろ、人によってはReactの方が簡単と感じる可能性すらあります。
超ざっくり言えば、VueはHTML、JavaScript、CSSをそれぞれタグで区切って1ファイルに記述します。
これは昔ながらのHTMLの書き方に近く、そういう意味ではとっつきやすいと言えると思います。
一方、Reactは基本的にJavaScriptとして書いてHTMLをエクスポートする形になっています。
つまりコンポーネントとページの書き方が同じなんですよね。
エクスポートする要素は1ファイル1ブロックと厳密に決まっているので、
ブロック単位で管理することになります。
どちらも深く理解しているわけではないのでなんとも言えないところもありますが、
直感的には自分はもしかするとReactの方が向いているのではないかと思いました。
コンポーネントもページも一律同じ形式で管理するのでわかりやすいというのがその理由です。
Nuxt.jsとNext.jsの違いについてはさらによくわかっていませんが、
これに関しては逆にNuxt.jsの方がわかりやすいという印象。
Next.jsはフォルダごとの役割が公式に決められているわけではなかったり
あるいはPagesフォルダの中にApiフォルダが配置されていて複雑な構成になっていますが、
Next.jsはルート直下に各役割のフォルダが明示的に並べられていて、
ユーザーはそれに従うだけでいいのでわかりやすいです。
Serverフォルダに入れたファイルは自動的にサーバーサイドで処理してくれるとか。
Nuxt.jsは公式サイトにプラグインリストがあるのでどういうプラグインがあるのかもわかりやすい。
Next.jsは公式サイトを見ただけではその辺の実態がわかりません。
まあこれはフレームワークの使い勝手というより公式サイトの問題ですが。