はじめに
React, vue.js, angularこの三つは三大フレームワークと呼ばれたりします。
会社がどれを選定するかは会社や商品の状況によります。
が、個人で勉強するのであれば、Reactを選ぶことをお勧めします。
今回はその理由について解説します。
フレームワーク選定の参考になれば幸いです。

フロントエンドフレームワークはReactを選ぶべき理由
将来性が高い
2024年版ロードマップは世界で多くのフロントエンドエンジニアの指針となっています。
ここでは現在、React一択が推奨されています。
(数年前まではReactとVue.jsの2択でした)
開発元はメタ・プラットフォームズ社です。
今後も安定的なメンテナンスやアップデートが期待されます。
収入が上がりやすい
会社がVue.jsではなくReactを選ぶメリットはいくつかあります。
一言で言えば「お金はかかるけど、いいものが作れる」ということです。
Reactを選んでいる会社は予算に余裕がある傾向にあります。
「高い報酬を支払って良いエンジニアを雇い良いものを作ろう」という方針の会社が多いです。
そのため、VueエンジニアよりもReactエンジニアの方が収入が高い傾向にあります。

スキルアップがしやすい
Reactで開発されているプロジェクトはTypeScriptが導入されている可能性が高いです。
またJestやcypressによるテストが書かれている傾向にあります。
サーバーもAWSやGCPなどクラウドが使用されていることも多いです。
このようにReactで開発されているプロジェクトは周辺の技術も充実しています。
Reactを選んでおけば、周辺のモダンスキルの経験も獲得できます。
キャリアアップがしやすい
新規開発案件では、要件定義や設計などの上流工程を経験できる傾向にあります。
現在新規でアプリを開発する際には、Reactが採用されることが多いです。
つまりReactを選んでおけば、上流工程のキャリアを積める可能性が高いのです。
またReactエンジニアはまだまだ市場に少ないです。
長い実務経験がなくても、リーダーなどの重要なポジションを任されることも多いのです。
求人で優良企業を探しやすい
例えばphpで案件を探すのは大変です。
laravelのような比較的モダンな技術を利用した開発もあります。
古い書き方のphpで5次請の案件もあるのです。
これらの求人を見分けるのは結構骨が折れます。
「必須項目」にReactと記載の企業は優良企業である可能性が非常に高いです。
Reactを採用している会社は「モダン技術に積極的で予算に余裕がある」傾向にあるからです。
盲目的に「React = 優良企業」と決めつけるのは良くありません。
Reactを選んでおけば、膨大な求人の中からブラック企業をフィルターしてくれるのです。

Reactの独学に挫折したらVue.jsに挑戦してみる
Reactのデメリットとして、学習コストと難易度が高いことです。
そのため、独学に挫折してしまう人も多くいます。
そんな時は一度vue.jsを学習することを推奨します。
vue.jsはReactと非常に似た構造をしています。
にもかかわらず難易度がReactよりも低いのです。
vue.jsを習得した後であれば、Reactの独学にも成功するかもしれません。
vue.jsの実務経験があればReact未経験でも案件に参画できたります。
Reactの習得はvue.jsの後でも遅くはないのです。

まとめ
・会社が技術選定を行う際にはReactとVueにはそれぞれメリットデメリットがあります。
・個人がどの技術を習得するかを選ぶ際には、現時点ではReact一択です。
・Reactの独学が難しい場合は一度vueを学習してみることをお勧めします。
補足
