IT

React vs Vue vs Angular

React.jsはJavaScriptのフロントエンドフレームワークとしてだいぶ有名になりました。Reactの対抗フレームワークとしては、AngularやVue.jsが有名です。

今回はこちらの記事などを参考にReactとAngularとVueを比較していきます。

Angular

Angularとは、Googleを中心に開発されているWebフロントエンドフレームワークです。Googleと聞くとかっこいいですが、最近は落ち込み気味な感じです。学習コストの高さがその理由にありそうです。また、Angularは過去のもの(AngularJS)と後方互換性がなく、コミュニティが分断されてしまっています。これも人気低下の一因になっていそうです。

良い点
  • コンパイルが速い(最新版は前より格段に早く、数秒で終わります)
  • Angularのやり方に従うことで、誰でもWebサービスが作れる
  • リアルタイムチャットアプリなど、Angularはドキュメントやチュートリアルが豊富なので初心者でもしっかり学べる
悪い点
  • Angular特有の事項を多いので学習コストが高いです(本当です)
  • TypeScriptを使わなければなりません(PureなJavaScriptが使えません)
採用企業

YouTube, Google, Udemy, Telegram, Nike, PayPal

Angularはいいフレームワークであることに変わりはないのですが、これから始めるにはちょっと微妙かもしれません。

React

ReactはFacebook社が開発しているWebフレームワークです。比較的高機能で、UIをコンポーネントとしてコードを再利用できたり、StateというWebサイト内のデータベースのようなものが変化したとき、変更箇所だけ再描画し、画面表示を高速化できたり、いろいろと使いやすいです。

良い点
  • Angularより簡単に学べます
  • JSXというReactの文法もほぼHTMLなのでわかりやすいです
  • React Nativeなどと組み合わせてスマホアプリ開発もできます
  • Componentとしてブロックをまとめ、再利用を繰り返すことで高速な開発が可能です
悪い点
  • Reactは最小限の部分のみ作り、いろんなライブラリを併用するのですが、ライブラリの選択肢が多すぎてどれ使っていいのかわかりません
  • Reactの開発が早すぎるせいもあり、ドキュメントが追いついていません。つまり、ドキュメントを見てもReactの使い方が最初はよくわかりません
採用企業

Facebook, Instagram、Netflix、Dropbox

Vue

Vue.jsはなにか大きな企業が開発しているわけはないのですが、GitHubではReactやAngularより多くのスターを獲得し、かなり人気があります。Google Trendの検索ワードでも、最近Reactを上回りました。

Vueの魅力はなんといっても軽量さです。Vueを作ったEvan YouはAngularJSでの開発を行っており、ここから無駄なものを削ぎ落として本当に必要なものを簡単にできる軽量ライブラリをつくれないだろうか、と考え、Vueを作りました。この設計思想により、Vueは学習しやすく、軽量で、高速に動作します。

良い点
  • 軽量ライブラリなので高速に動作する
  • ドキュメントが豊富(日本語もたくさん!)
  • Reactと同じく、Componentとしてコードの再利用が可能
悪い点
  • マーケットシェアが小さく、ライブラリなどが少ない
  • 中国系なので英語ドキュメントは意外と少ない
採用企業

Xiaomi, Alibaba

まとめ

今から勉強するならReactVueなのかな、という気がします。時代の流れとして、フレームワークの変化と流行り廃りが激しくなっています。なので、一つのフレームワークに投資しすぎることはリスクになります。そうすると、学習コストが高く、他に応用しにくいAngularの勉強に時間を使うことはもったいないと思います。すると、ReactかVueが良いということになります。

React

ReactはFacebookが開発し、FacebookやInstagramで使われていて、実績は十分です。また、React Nativeというアプリ開発フレームワークがReactと近い構文を採用しています。FacebookやInstagramのアプリはiOS版もAndroid版もReact Nativeで開発されています。つまり、Reactを勉強すればWebもスマホアプリもできる、という点も人気の理由です。

Webだけを開発するにしても、Reactの使いやすさは魅力的です。コンポーネントの再利用なども、ReactとVueの秀でているところです。また、Reactは開発者が多いのでVueよりStackoverflowなどの記事が豊富にあります。ここも良いポイントだと思います。

Reactへの入門方法は下記に書いています。本当に使いやすいフレームワークだと思います。

React+Reduxへの入門!本とUdemyで爆速入門私は仕事でReactを利用しているので、今では思い描いたWebアプリケーションをすぐにReactで作れます。しかし、最初からそうだったわ...

Vue

一方、Vueの台頭には恐ろしいスピード感があります。Riotなど、Vueよりさらに軽量なフレームワークが出てしまうくらい軽量なフレームワークの需要は高まっています。フレームワークは高機能にしていくと、どうしても複雑になってしまいます。Angularとかはまさにそのタイプですが、Vueは基本機能を絞ることで簡単なアプリを簡単な思考で実装できます。加えて、必要に応じて外部のライブラリを追加して機能を拡張し、複雑なアプリの開発も可能にします。この点がVueのいいところです。ReactはAngularとVueの中間に位置するような気がします。

Vueは公式ドキュメントがReactと比べて大変充実しているので、これだけでしっかり始めることができます。

書籍もありますが、こちらは補助的に利用する程度で良いと思います。

Vue.js入門 基礎から実践アプリケーション開発まで

ここまで読んでも悩んでいる方は…

結局どれをやるべきかは悩ましいですが、特にこだわりが無ければ今はVueがいいのかなと思います。スマホアプリも作ってみたいとか、もっと高機能なものを使いたいならReactがいいと思います。私はReactが好きなので使っていますが、Reactにもそれなりの学習コストがあります。気合い入れて英語のDocumentを読まないとあまり理解できませんでした。でも今はReactもVueも日本語の本が多いですから、どちらでも問題なく始められると思います。まぁ、最終的な判断は自分がやりたいかどうかだと思います!悔いがないフレームワーク選択の一助になれば幸いです。

React+Reduxへの入門!本とUdemyで爆速入門私は仕事でReactを利用しているので、今では思い描いたWebアプリケーションをすぐにReactで作れます。しかし、最初からそうだったわ...