Vue.jsってなんだ?何が作れるの?解説します!

Vue.js とは何ですか

Vue.js は、中国の天才エンジニア Evan You によって作られたオープンソースのプログレッシブ JavaScript フレームワークであり、ユーザーインターフェイスとシングルページアプリケーションを構築するために使用されます。GitHub では、2014 年にリリースされてから現在までお気に入り数が 18 万件以上の人気のある JavaScript フレームワークです。

Vue.js を使うメリット

Vue.js の最大のメリットは、コンポーネントの利用とモジュールの選定が非常に容易であることです。

フロントエンド開発において、コンポーネントの再利用は一般的です。そして、コンポーネントとモジュールを使用する際に注意が必要なのが、依存関係です。それぞれのコンポーネントやモジュールが下層に依存しているため、依存関係が正しくなければバグが発生する可能性があります。そのため、どのバージョンでどのようなルールで使用するべきかを理解する必要があります。これは非常に時間がかかる作業です。

しかし、Vue.js ではコアライブラリが用意されており、多くの人がそれに依存して開発しています。つまり、新しいコンポーネントやモジュールを追加する際には、依存関係について気にする必要がありません。

また、Vue.js のコアライブラリを利用することで、初期開発段階でのモジュール選定についても特に考える必要がありません。

他フレームワークとの比較

Vue.js の他に有名は フレームワーク はあります。
Vue.js と並び三大 フレームワーク といわれるのが以下の三つです。

比べるとそれぞれ、デメリットとメリットが存在しどれを使うかは各々「団体・個人」によって精査しなければいけないです。

AngularReactVue
開発元Facebook + コミュニティコミュニティ主体Google + コミュニティ
初期リリース年201020132014
公式サイトangular.ioreactjs.orgvuejs.org
機能フルスタックユーザーインタフェースユーザーインタフェース
ルーティング同梱React RouterVue Router
適切な開発規模中〜大小〜中
エコシステム多い豊富少ない + 日本語あり
学習コストやや低~中
アプリサイズ(KB)50010080

三大フレームワーク比較テーブル

三大 フレームワーク に共通しているメリットは、それぞれ コンポーネント と モジュール 単位に機能を分割し利用できることです。

Vue.js の主要機能

Vue.js には、以下の主要な機能があります。

  • 仮想 DOM
    Vue.js は、仮想 DOM と呼ばれる方法で実装されます。仮想 DOM を使用することで、レンダリングコストを削減し、高速な処理を提供できます。また、JavaScript 側で要素を取得せずに値の操作を行えるため、実装がわかりやすく書くことができます。

  • データバインディング
    Vue.js では、データバインディングと呼ばれる機能を提供しています。これは、Vue.js から HTML へのデータのやり取りを容易にする機能であり、v-bind と呼ばれるバインディングディレクティブを利用します。バインディングディレクティブを使用することで、HTML 属性の操作、値の割り当て、スタイル変更、クラスの割り当てなどを簡単に行えます。 データバインディングについて詳しく知りたい場合は、『未経験からの Vue.js 入門|データバインディング』を参照してください。

  • コンポーネント
    Vue.js では、再利用できる要素を分けることができるコンポーネントを使用できます。コンポーネントを使用することで、要素の再利用を容易にします。コンポーネントについて詳しく知りたい場合は、『未経験からの Vue.js 入門|コンポーネント』を参照してください。
    イベント

  • Vue.js では、HTML から Vue.js へイベントをハンドリングします。
    Vue.js では、HTML から Vue.js へイベントをハンドリングします。イベントを行うには、v-on ディレクティブを利用します。 イベントについて詳しく知りたい場合は、『未経験からの Vue.js 入門|イベント』を参照してください。

Vue.js の環境構築方法

Vue.js の環境構築には、以下の 3 つの方法があります。

  • Node.js で作成された CLI を利用する方法。
    CLI ツールを使用すると、ボイラープレート(またはベーステンプレート)を使用してプロジェクトを開始できます。Vue.js 開発チームが提供する Chrome 拡張機能を使うことで、コンポーネントツリーのレンダリング方法、イベントの起動方法と記録方法、各コンポーネントの内部状態の保存方法、コンポーネントのグローバル状態を確認できます。
  • HTML ファイルに script タグを含めて CDN を使用する方法。
    HTML ファイルに script タグを含めて CDN を使用することで、既存の HTML ファイルにそのまま Vue.js のコードを記述することができます。
  • Vue.js ファイルをダウンロードし、HTML ファイルに直接 script タグを付けて含める方法。
    Vue.js ファイルをダウンロードし、script タグを付けて HTML ファイルに直接含めることができます。 CLI ツールを使用すると、ボイラープレート(またはベーステンプレート)を使用してプロジェクトを開始できます。

環境構築についてより詳しく知りたい場合は、『未経験からの vue.js 入門|環境のセットアップ』を参照してください。

Vue.js のフレームワーク

Vue.js は JavaScript フレームワークですが、Vue.js を拡張したフレームワークも存在します。 Vue.js は単体で完成されている web アプリケーション開発フレームワークですが、Vue.js 単体では不便なこともあります。そこで、Vue.js のフレームワークが存在します。

ここで紹介する Vue.js のフレームワークは以下の二つです。

  1. Nuxt.js
    Nuxt.js は、Vue.js のフレームワークであり、Vue.js アプリケーションの開発を効率化することができます。Vue.js アプリケーションに必要な構成が事前に用意されているため、Vue.js 単体で作成するよりも簡単にアプリケーションを開発できます。また、SSR、SPA、PWA、静的サイトなどの作成が容易になります。
  2. Quasar
    Quasar は非常に多くのレンダリングとアプリケーションイメージを提供しており、ハイブリッドモバイルアプリやエレクトロンアプリの開発ができます。

この二つについてより詳しく知りたい場合は、『Vue.js のフレームワーク  Nuxt.js と Quasar の比較』を参照してください。

総評

Vue.js を使用することで、Vue.js インスタンスの「データ」オブジェクトの変更に基づいてビューを自動的に更新するシングルページアプリケーション(SPA)を簡単に作成することができます。また、Nuxt.js や Quasar などのフレームワークを使用することで、開発効率が向上し、様々なアプリケーションを簡単に作成することができます。