Vue.js
概要
Vue.jsとは、Webアプリケーションの表示・操作部分(UI:ユーザーインターフェース)を効率的に開発することができるJavaScriptライブラリ。オープンソースソフトウェアとして公開されている。Webブラウザで実行するフロントエンド部分に特化しており、他のWebアプリケーションフレームワークやライブラリなどと組み合わせやすい。また、「プログレッシブフレームワーク」を標榜しており、最小限の機能だけを選択して開発を始め、後から必要に応じて機能を追加することができる。
API(Application Programming Interface)はシンプルで、少ない記述量で目的を達することができるよう配慮されている。独自のマークアップ言語などは用意しておらず、標準のHTMLを雛形(テンプレート)として、「v-」で始まる属性を追加する形で要素を定義することができる。
ページ上のHTMLの現在の状態を内部的に保持しておく「仮想DOM」(virtual DOM)の仕組みを採用しており、要素に変更が加えられると自動的に必要な箇所だけ描画し直す。少しの更新のためにページ全体を再描画しないため高速で軽快な表示・操作感が得られる。仮想DOMの操作はVue.jsが内部的に行うため開発者は意識しなくて良い(明示的に操作することもできる)。
ページ上の要素とスクリプト上のデータを対応付け(バインディング)でき、変化に対して自動的に追随させることができる(リアクティブシステム)。データを変更すれば対応するページ上の要素に、ページ上の要素を変更すれば対応するデータに、双方向に自動的に変化が伝えられる。
UI要素をコンポーネント(部品)化する仕組みを内蔵しており、独自の機能や属性を持つ新しいHTML要素(タグ)を定義することができる。このカスタム要素をテンプレート中で組み合わせてページを構成することができ、大規模なアプリケーション開発で共通のUI要素を定義したい場合などに役立つ。
Vue.js本体は軽量でファイルサイズも小さいが、ライブラリを追加することでクライアントサイドルーティング(Vue Router)、大規模な状態管理(Vuex)、コマンドラインツール(Vue CLI)、JavaScriptモジュールへの変換(Vue Loader)、Browserify連携(vueify)など本格的なWebアプリケーション開発に必要な機能を組み込むこともできる。
Vue.jsの開発は米グーグル(Google)社のエンジニアだったエヴァン・ヨー(Evan You/尤雨溪)氏が創始し、2014年に初版が公開された。氏は開発の動機について、AngularJSを使用してきた経験から、Angularから気に入った要素だけを抽出して軽量なライブラリを作りたかったと述べている。現在は氏の設立したビューテクノロジー社(Vue Technology LLC)が開発を主催しており、MITライセンスに基づいてオープンソースとして公開している。