Nuxt.js ビギナーズガイド ch.1 Nuxt.jsの概要

JavaScriptNuxt.js勉強メモ

出典: 

「モダンフロントエンド」のイマ

いわゆる「モダンフロントエンド」について

  • 基盤は安定期

    • SPA + APIのWebアプリケーションはデファクト
    • 技術は寡占状態・十分枯れてきている

      • React
      • Vue
      • Angular
  • 先進的な技術はいろいろ動いてる

    • Web Worker領域へのロジックの移植
    • Web AssemblyによるハイパフォーマンスなWeb開発

安定したフロントエンドJavaScriptに求められるもの

  • 現在の技術をより高い生産性のもと扱える

    • 開発のエッセンスとベストプラクティスが固まりつつある
    • 技術の寡占が進み、選定と運用が退屈・無駄に
    • アプリケーションの本質に集中したい。技術側で良しなにやってくれ
  • 将来を見据えた拡張性

    • 陳腐化の回避

      • PWAが徐々に浸透
      • REST API -> GraphQL

Nuxt.jsとこれからのWebアプリケーション開発

  • Nuxt.jsは↑を満足する
  • Vue.jsベース

    • 知識・資産を活用できる
    • 負債となりやすい箇所をカバー
  • いろいろすごいフルスタックフレームワーク(p.17)

    • 今後いっぱい出てくるだろうから略
  • NPMのダウンロード数も右肩上がり

    • 注目が見て取れる
  • Vue.js公認

    • Vue.jsコアとも連携できる体制に期待が持てる

Nuxt.jsとは

Next.jsをリスペクトして生まれたNuxt.js

  • Next.js

    • ReactアプリケーションをSSRするためのフレームワーク
    • ミニマル
  • Nuxt.js

    • Next.jsと同じことをVue.jsでやろうぜ

      • Next.js発表の数時間後
    • Next.jsとは異なり、フルスタックフレームワークとしての道を歩むことになる

Nuxt.jsの特徴と機能

  • ビルドプロセスの隠蔽

    • webpack意識させない

      • 意識するのは、カスタマイズしたローダーやプラグインを追加するときくらい
  • Vueのエコシステムとのインテグレーション

    • Vueのエコシステム

      • Vue Router
      • Vuex
      • Vue Server Renderer
      • vue-meta
    • これらを良しなに設定して使いやすくしてくれる
    • Facadeみたいな感じ
  • 独自レイヤの実装

    • middleware

      • アクセス時hook
    • plugins

多くの企業に愛されるNuxt.js

  • Nuxt.jsをすこれ

Nuxt.jsがもたらすもの

Nuxt.jsがフロントエンドにもたらす「規約」

  • レールを敷いてくれる
  • レールに乗っかる = 規約を守ることに対する明確な優位性

    • 「どっちでもいいじゃん」を決めなくていい(決めてくれる)
    • コード記述減る

      • 定型パターンをいちいち書かなくていい

Nuxt.jsがマッチするプロジェクトやシチュエーション

Nuxt.jsを採用すべきシチュエーション

  • Vue.jsのSPAプロジェクト
  • Vue.jsの中級者以上が1人でもいる
  • Vue.js柔軟すぎてつらい

    • 設計上悩んだりする
    • 汎用性のないオレオレアーキテクチャを作るくらいなら、Nuxt.jsはどうですか

      • Nuxt.jsは、良しなにいろいろ決めてくれる一方、拡張性もちゃんとある
    • チームのレベル差が激しい時にも

      • 自由だとバッドノウハウを掴んでしまいやすい
  • Vue.jsのベストプラクティスまだ見えてない

Nuxt.jsを採用すべきでないシチュエーション

  • そもそもSPAじゃない
  • Vue.js初心者しかいない

    • Nuxt.jsの学習コストは決して低くはない
    • Vue.js自体の学習から必要なら、Vue-CLI使え