注意 この記事は初学者である筆者がネットの記事など読んで筆者なりにまとめたものです。
フロントエンドエンジニアってなんなんだろう?と思い調べていますが、流行りのフレームワークの特徴を書きました。
Vue.js
米国在住中国人Evan Youによって作られたフレームワーク。
日本語のドキュメントもすぐに作られたので日本での利用者数も多い。
特徴的なのはSFC(シングルファイルコンポーネント)というHTML, JavaScript, CSSをまとめて1つのファイル(.vue)に記述できるコンポーネント化ができる。
視覚と機能の面でコンポーネントが果たす責務を捉えられる。
Vue.jsのコミュニティが支えるライブラリが数多くある。Vuex, Vue Router, Nuxt.js...
Angular
Googleが開発しているフレームワーク。
他の2つと比べると機能が充実していて開発における機能が一通り揃っている。
Typescriptでのコーディングが前提。
Vueとは違ってHTML, JavaScript, CSSを分離している。
ただこちらもコンポーネント化してmain.ts(Vueはmain.js)にてコンポーネント群が集約されていく。
機能充実している反面学習コストが高い。
React
Facebookが開発しているJavaScript ライブラリ。UI構築に主眼を置いている。
そのため公式でもAPI連携について詳しく明言していない。Angularと比較すると機能もかなりミニマム。
JavaScriptを拡張したJSX構文(HTMLにあたる)とJavaScript での記述のみ。ここが上記2つとの最大の違い。
ポイント
3つとも共通するのはコンポーネント指向である。ではなぜコンポーネント指向にしたいのか
コンポーネント指向が実現できること
疎結合で依存性が低いのですぐに代替可能。
これが必要な理由はフロントエンド開発の技術の波がとても早いため。ECMAscriptが年次で更新されているのが良い例。
コンポーネントならばこのような環境の変化にすぐ対応できる。
所感
なんとなく特徴は掴めたが結局やってみないと分からない。
とりあえず今はVue.jsを勉強中です。