フロントエンドを中心に、最近話題のJavaScriptフレームワークについてまとめました。
React.js
Facebookが開発した、オープンソースのJavaScriptフレームワークです。まだ歴史が浅いのですが、AngularJSと並んでJavaScriptフレームワークの筆頭にあげられます。
MVCでいうところのViewを構築するフレームワークで、Fluxという独自のアーキテクチャを採用しています。一方向のデータバインディングや、Virtual DOMが特徴です。FacebookやYahoo!などの大手サイトでも採用されていることからわかるように、スケールもし易いです。
AngularJS
AngularJSは、Googleが開発したJavaScriptフレームワークです。フルスタックのフレームワークで、JavaScriptフレームワークの代表格とも言えます。双方向バインディングや、HTML拡張であることが特徴です。
AngularJSの新しいバージョンであるAngular2も発表されていて、まだベータ版ながら注目を集めています。React.jsと同様、一方向のデータバインディングや、Virtual DOMなどの機能が載せられるようです。
Knockout.js
Knockout.jsは、MVVM(Model、View、ViewModel)パターンを実装するためのJavaScriptフレームワークです。HTMLとJavaScriptの役割と明確に分けて、メンテナンスや改修しやすいコードをつくることができます。
特徴としては、データバインディングが充実しているところ。バインディングをカスタムすることも可能です。jQueryなどの外部ライブラリに依存しないことや、シンプルに記述できることもメリットとしてあげられます。
Backbone.js
MVC(Model、View、Collection)を採用しているJavaScriptフレームワークです。React.jsやAngularJSほどではありませんが、世界的に使われている人気のフレームワークです。Marionette.jsなど、他フレームワークと組み合わせて使われることも多いです。
割と柔軟性があることが特徴で、スピードや簡易さよりも、長期的にしっかりとプログラムを組む案件に向いているでしょう。なお、Backbone.jsは単体では使うことができず、Underscore.jsというライブラリに依存して動作します。
あとがき
制作する内容や開発チームのスキルによっても、最適なフレームワークは変わります。各フレームワークの特徴を考慮して、上手に使っていきたいものです。