JSフレームワークに至っては一番乗りのAngularJSの1系登場が2012年。
Googleのフレームワークだから安心かと思っていたら2015年には既に下火という有様です。
後続のReact.jsはメジャーバージョンが1を越えた(いきなりv15だけど)のが2016年8月、既に最新のリリースがv16.8です。
Vue.jsも1系最終版が2016年9月、2系に以降してから既にv2.6.6とマイナーバージョンが6度更新されています。
このように各ライブラリのリポジトリをちら見すればわかりますが、
移り変わりが超激しいのがフロントエンドです。
受託なら枯れた技術を採用したいという主張も理解は出来ます。
なので採用しない理由がデカいので、
採用したいならしっかり理由を詰めて論理武装してください。
さて、JSフレームワークを使う意味です。
Angular単品で見るよりここを抑える方がはるかに重要です。
質問文書いてる時点で薄々思ってるでしょうけど、Angularはあくまで選択肢の一つだからです。
これは正直エンジニアの数だけ回答があるでしょう。
散々考えて分からないなら、勉強会などへ参加して使ってる人に聞いてみては?
私の答えは、「冪等性」と「宣言型」です。
これを現行のjQueryでの開発を例に解説していきます
jQueryはDOMを簡単に扱えるライブラリです。
昔は足並みの揃わない愚鈍なブラウザ達の足並みを揃えるクロスブラウザ的な側面も強かったのですが、
今では軒並みES5やES6が完全動作するのでメソッドチェーンを駆使して書けるライブラリ以上の意味合いはありません。
しかし、jQueryの限界は「AをBに変更しろ!」にあります。
こういう風にAをBに変更することでDOMを制御するのを命令型といいます。
この命令型は冪等性の担保が難しいことに問題があります。
既にDOMの状態がBになっているものに、「Bに変更しろ」という命令を下したらどうなるんでしょうね?
クラスの付け外しみたいなしょぼいものならば別に問題にはなりませんが、
要素をドラスティックに操作、
例えばtableの任意の項目でソートしましょうみたいな事になれば工数がアホみたいに跳ね上がります。
これの整合性を保つ為にエンジニア達は日夜残業して目視でテスト項目を埋めることになります。
また、jQueryはJSの変数世界と、DOMの二重管理を強いられます。
右上のメニューからモーダルの設定項目が表示されて、変更すると画面の内容が切り替わるみたいな処理だと、
更新処理を2重に書く必要がでてきます。
このようにあっちこっちに同じ事を書けば、横並び項目の修正漏れでレイアウトが崩れます。
これがjQueryの限界、命令してるってことは相手は指示待ち人間なわけですよ。
ネイティブJSも同様で命令型でやっている限り一生この問題がつきまといます。
当たり前過ぎて中々気が付きませんが、
当たり前じゃないんですよね。
JSフレームワークがこの概念を崩してくれました。
JSフレームワークというのは宣言的にDOMを構築するものです。
JSフレームワークにテンプレート的存在なHTMLを読み込ませて、
JS世界の値をJSフレームワークのルールに従って変更すると、
テンプレートが再読込され、自動的にあるべき最新のDOMツリーに置き換わります。
この自動的に「あるべき状態」に変化するってのが冪等性。
2回リフレッシュ処理を走らせたら?
別になにも起こりません、2回あるべき状態のDOMが構築されるだけです。
宣言としてこうであるべきを書く事で修正漏れも最小限になり冪等性も保たれます。
冪等性が保たれるなら、A処理を変更したことで他の処理が壊れる事に震えながら過ごす必要はありません。
つまりテストの工数も減りますね。
またJSの変数世界が常に正で、DOMは瞬時に最新のあるべき姿に置き換わります。
つまり開発者は変数を監視すれば良い。
不具合が圧倒的に減るので、結果としてテストの工数も減りますね。
これが流行り廃りが激しいフロントエンドの世界で、
明日サービスがポシャってるかもしれないJSフレームワークを採用する理由です。
これを学習コストにぶつけてどちらが良いかを判断するのが意思決定者の仕事です。
画像のビューワーやアコーディオンのような変数無しでも表現出来るしょぼいものならともかく、
それ以上のものはJSフレームワークの思想で宣言的かつ冪等性に処理すべきです。
見えないDOMの変化でレイアウト崩れする不安に怯えながら、
必死にExcelで作った目視のテスト項目潰していく作業は嫌でしょ?
なので大規模なフロントエンドのWebアプリを作るなら、
なんでもいいからJSフレームワークでやらせろが基準です。
何を使うかは半ば博打です。
例えばPHPの中身のエンジンはZend製であり、その会社が出したZend Engineが間違いないと評判になりましたが……あっという間に廃れましたね。
同じくAngularはバックがGoogleと一見強いですが、既にDartやAngular2系で盛大にやらかしてますし、Google自体がポシャったらすぐ逃げる集団なのでそういった意味では信頼性はイマイチです。
まぁ、JSフレームワークの根本である冪等性を保つ為に、
「テンプレート」とJS変数世界の値に従うというルールや思想は長く残るでしょうし、
中身のロジックはネイティブJSの関数ですよね。
例えJSフレームワークが古くなって捨てられるような事になっても、そんなに工数はかかりません。
移行時の工数やテストで死ぬかもしれませんが、
最初からjQueryで作って完成にこぎつけるまでで死は免れません。
同じ死ぬにしても未来のある方に足掻いて死にたいですね。
この考えに賛同出来るなら、怖くてもJSフレームワークを採用すれば良いですし、
賛同しないなら採用しなければ良いだけの話です。