エンジニア業界のjQueryの立ち位置って・・・
Discussion
jQueryのことについて皆さんはどう思いますか?
twitterとかで体感的にjQueryがぼこぼこに言われている気がして
jQueryがダメな理由やどういうところがダメか。また、どういったところが優れているのか。
率直なjQueryに対する意見を聞きたいです。
また、jQueryに変わるものがあれば知りたいです。
よろしくお願いします。
Discussion
twitterとかで体感的にjQueryがぼこぼこに言われている気がして
jQueryがダメな理由やどういうところがダメか。また、どういったところが優れているのか。
率直なjQueryに対する意見を聞きたいです。
また、jQueryに変わるものがあれば知りたいです。
よろしくお願いします。
現状「バニラやReact等にできなくてjQueryにできることがそうそうない」というのが率直な印象です.(一応ReactやVueとかのフレームワークとjQueryは方向性が全くの別物なので,比較してどこがダメかというのはまとめづらいです)
良くも悪くもjQueryは前世代的なライブラリでして,普通に使う分にはバニラJSを略記できる程度でしかなく,ロジックを組み立てる上でほとんど保守性向上に寄与しません.動作自体も使い方を間違えると結構重かったりします.
加えてTypeScriptが普及した今日,npmにも@types/jquery
なるパッケージは確かにありますが,npmで開発するような環境が前提ならわざわざjQueryを選ぶメリットって何だ?とReactを触ったことがあるなら誰しもが思うのではないかと…
んでスニペット程度で軽く使うにしたってdocument.querySelector
が標準で使えるのに,わざわざ重いjQueryをインポートしてまで短く書きたいか??てのが私見です.
jQueryはCSSセレクタやアニメーション等,色んな方面に取り回しがよく,あちこちで使用されていましたが,Webアプリケーション開発が要求する保守性と統一性に応えられませんでした.提供する機能の多くもブラウザが提供するAPIによって,jQueryよりも低負荷な実装が可能になってしまいました.(ちなみに割と最近までjQueryでしか使えなかった:has
もついに実装されました.)IE11が死んだ今,ポリフィルとしての使われ方も少なくなっていくと思われます.おいそこ「じゃBabelはいつなくなるんだ」とか言わない
適材適所で使っていけば良いのは? jQuery がフレームワーク組み込みというケースもあるし。
jQueryがダメな理由やどういうところがダメか。また、どういったところが優れているのか。
イベント駆動でDOMを直接操作する方法は、とっつきやすく細かい制御はやりやすい反面、アプリケーションの本来の関心ごとに集中しづらく、UIの変更にドメインロジックが影響を受けやすいデメリットがあると思います。
そのため、ある程度以上の規模のアプリケーションになるとjQueryでは保守性が悪く、最近ではVue.jsやReactが人気を得ていると考えています。
一方でアニメーションに関するライブラリなど、UIの挙動に対して直接的に機能を提供してくれるライブラリの豊富さではjQueryの長年のエコシステムに利があるかもしれません(私はReact等のライブラリに疎いので、もしかしたら今どき大体のやりたいことは標準APIやらReactのライブラリやらでも出来るのかもしれません)。
また、jQueryに変わるものがあれば知りたいです。
jQueryがダメな理由にも通じますが、DOM操作という意味では素のDOM API、つまりいわゆるVanilla JSが代替だと思います。
以前はブラウザ間の差異も大きく(特にIE)、jQueryはクロスブラウザ的なメリットもありましたが、最近ではその差異は大きくないです。
また、querySelectorが実装されるなど、jQueryで便利だった機能の一部は標準として提供されるようにもなっており、jQueryを使う動機が減っていると思います。
(さらに言えば、既にコメントがあるように使い方によってはパフォーマンスも悪い場面が多々あります。最新版がどうかはわかりませんが…)
そうではなく、アプリケーションフレームワークの昨今のトレンドということであれば、Vue.jsやReact、それらを元にしたNuxtやNext.js等が代替かと思います(が、その辺疎いのでどなたかフォローください)。