VueかReactどっち勉強すればいいか問題

最近良く聞かれるので書いておく。

答える人のバックグラウンドについて

  • 最近はだいたいRails書いてるサーバーサイドエンジニア。
    • 最近はフロントエンドも書くことも少なくなったけど、Vue1.xのときにSPAっぽいものつくってたりした。
  • Reactは未経験だけど、Reduxとか、Fluxとかはなんとなーく考え方位はしっている。ほかのフレームワークはあまりしらない。
  • まぁサーバーサイドエンジニアから見た視点ということで、本職の人はちょっと大目に見て欲しい。

想定読者

  • このような質問をするのは、僕のようにどちらかと言えばフロントエンドのフレームワーク事情に詳しくないような人だと思っている*1ので、その人にあった回答をしておきます。

まとめ

  • ちょっと複雑なフォーム*2とか実装したいときはVue
    • フロントエンドを片手間でやってる人が欲しい機能の8割方これでカバーできる。
    • アホみたいにある周辺ツールもまずは無視してやってみてほしい。(Vueはまだ無視しやすい)
    • 直接HTMLにJS書いちゃうスタイルでもOK。
  • SPAをしっかり作り込みたいならReactとかAngularとか他のがいい
    • Vueでも出来なくないけど、VueよかSPAでの稼働実績も多いし、コミュニティもFacebookGoogleが関わっていて巨大なので安心。
    • そもそも片手間でSPA無理とか、そういうのはまた別の話。
  • TypeScript使いたいならVue以外が良い。
    • あまり相性が良くないと思っている。
    • 先述したしっかりSPA作り込みたい案件の場合、コレが痛いケースも。
  • そもそもどっち?なんて聞くくらいにフロントエンドにあまり積極的でない(悪い意味ではない)場合はVueだけでいい。そうでなかったらVueだけでなく、Reactとか周辺技術も頑張って勉強してください。
    • Vueを片手間レベルでもいいので使えるようになるとマジで楽になるし、コスパ最高と思っている
    • フレームワークに詳しいフロントエンドエンジニアはTPOに応じてReactとVueを使い分けれるようにしていると思ってる。

最後に

  • ちょっと複雑なフォームとかをシュッと書くときにReactを採用するメリットってあるのかな?(単純に知らないだけだと思うで、知見ある人教えてください。)
  • 本当にこれだけやれば片手間JS楽になるよーって記事は需要があるのかないのかわからない。*3

*1:詳しい人は両方知ってるし、そんな質問はしない

*2:例えばこんな中古車検索のフォームとか http://www.get-u.com/ucar/search/

*3: 記事にするほど難しくもないのでは…