種類
- React.js
- 最近注目を浴びているFacebook製のライブラリで、MVCアーキテクチャでいうViewにあたる機能を提供する
- JSX、Virtual DOMという、新しいアプローチ
- MVCとは違う、Fluxという設計パターン
- Isomorphicなアーキテクチャが可能
- Angular.js
- Googleが開発している人気MVCフレームワーク
- フルスタックで、できないことは殆ど無い
- Yeomanなどを使うとSPA(Single Page Application)が30分位で作れてしまう
- Angular Wayともいわれるが、モジュール化がきっちりされていて、汚いコードにはほぼならない
- Angular.js 2.0
- ES6等の最新のJavaScript規格を取り入れ、TypeScriptをベースとし記述する
- Angular.jsとはかなり書き方が違う
- WebComopmentsを利用した、より厳密に独立したコンポーネント化を推進
- Backbone.js
- 単一データの管理を行うModel、複数件のモデルの管理を行うCollection、画面の管理を行うViewを組み立てていく
- Backbone.js自体は構造化の仕組みがなく、フレームワークとしてMarionette.jsと一緒に使われることが多い
- 事例が案外多い(Buffer、Soundcloud、Trello、Qiitaなど)
- Vue.js
- MVVMパターン
- 作成したUIコンポーネントを組合せてページを構成することを前提にしている
- 似ているといわれるが、AngularJSと設計思想は全く異なるもの
- 理解しやすいフレームワークとして有名
- Mithril.js
- Mercuryとともに、スピードがかなりはやいフレームワーク
- Aurelia.js
- ES6、ES7なシンタックス
- GoogleでAngularJSの開発に関わっていたRob Eisenbergさんが開発した
- Knockout.js
- MVVM
- Bindingに特化したフレームワーク
- 機能は少ないが、導入するのが容易で、学習コストも低い
- Ember.js
- 後で調べる
- Riot.js
- 後で調べる
- Ractive.js
- 後で調べる
- まとめ
- 現存するフレームワークは多すぎる。その中でReact,Vueは早い速度で成長している。Angularは最もシェアが多いのでライブラリとかもちゃんとよいされ、安定的に開発できる。Backboneは段々シェアが落ちていくけど、影響力はまだかなり大きい。
タスクランナー
- Gulp
- タスクランナーは、フロントエンドの様々な面倒事を自動化できるツールです。これなしのフロントエンドはもはや考えられない気がします。
モデュール化
- Webpack
- Webコンテンツには、CSS、JavaScript、画像、webフォント等多くのファイル(アセット)が必要になる。こういったwebで必要なファイルを取り扱うためのWebpackというものが最近人気になっている。
- webpackとは、 webコンテンツを構成するファイルを「モジュール」単位で取り扱い、最適な形に作り変えるためのツールである。
参考
Comparison of 4 popular JavaScript MV* frameworks (part 2)
ここ数年前から2015/5までのモダンフロントエンドを総まとめしてみた
JS開発で人気のWebpackとは!?