Transcription
それがね、全ウェブサイトの約 77% ジェイクリーのおかげでブラウザが統一されてジェイクリー 4.0 ではホームデを渡す。ジェイクエリーは古いじゃなくて つ麦ちゃん大変なのだ。
ジェイクエリーの 4.0 がリースされたってニュースで見たのだ。あ、ズンダモンも見たんだね。2026年1月17 日に戦士基出だよ。でもぶっちゃけってさがあるのだ。リアクトと火龍が主流の時代にまだ使ってる人いるの?
それがね、全ウェブサイトの約 77% が今でもクエリーを使ってるんだよ。え、そんなにWordPress とかで置いてるってことなのかな?そうそう。WordPress には標準で入ってるし、企業サイトでも現役なんだ。だから既システムの回収とか案件で触る機会はまだまだあると思うよ。
10 年ぶりのメジャーアップデートって聞いたけど、随分長く更新してなかったんだね。前のメジャーバージョン3.0は2016 年のリースだったからね。J自体は2006 年に誕生してるから今年でちょうど 20周年だね。20 歳の誕生日にメジャーアップデートをプレゼントしたってわけなのだ。
今回は破壊的変更も多いから業務で使っても大丈夫なように内容を見ていこうか。よろしくお願いするのだ。
まず最初にジェイクより 4.0で1 番大きな変更点を話すね。ブラウザスポートが大幅に削減されたんだよ。ブラウザサポートって対応するブラウザを減らしたってことなの?そう、特に大きいのは I10以下が完全に切り捨てられたこと。IE10 ってもう化石みたいなブラウザなのだ。でも待って I11はどうなったの?IE11 は今回は残ってるんだけど、次のジェックリ.削除予定なんだ。段階的に移行できるように配慮してくれてるんだね。いきなり全部切られるより猶予があるのは助かるのだ。もエッチレガシーンのサポート終了になったよ。エッジレダシーってクロミムじゃない。古いエッジ?Windows住所機に入ってたやつだね。あとは iOS11未満とFirefox65 未満のスポートになったよ。古いiPhone とかを使ってる人は注意が必要なのだ。
もしこれらのブランザ対応が必要な場合は Jり3Kを使い続ける選択肢もあるよう。無理に4.0にしなくても3K で安定運用する手もあるってことなのだ。
メダシーブラウザを切ったお金でコードもスリムになったんだよ。
次はジェイクリ 4.0で削除されたAPI について似ていくよ。削除されたってことは使ってたコードが動かなくなるの?そうなんだよ。でも安心して全部ネイティブの Javで代々できるんだ。例えばアレイて使ったことある。配列かどうかチェックするやつなのだ。昔のコードで見たことあるよ。これはありイスありトユニティブメソッドに置き換えられるんだ。書き方もほとんど同じなのだ。移行は楽しそう。トリムも削除されたよ。文字列の全部の空白を消すやつだね。それはSTR トリム出かけるのだ。もうみんな普通に使ってるよね。パスJSONも消えたんだけどこれはJ ソパースで代替できる。ジェイソンのパースも今は標準 APIがあるから困らないのだ。あとはなもなくなってリトナウを使うようになったよ。
でもさ、なんでジェイクエリーは昔わざわざこんなメスを作ったの?昔はブラザごとに実装がバラバラだったからなんだ。アトファックスとクロームで同じコードが違う動きをすることもあったんだよ。それは開発者にとって地獄みたいな環境なのだ。ジェイクエリーはそのブラウザの際を吸収してくれてたんだ。でも今はどのブラウザでも APIが統一されてきたんだよね。ジェイクエリーのおかげでブラウザが統一されてジェイクエリーが不要になったって皮肉なのだ。まさにその通り。ジェイクリーの当初の使命は役目を終えたってことだね。時代の変化を感じるのだ。
削除されたAPI は分かったけど、自分のコードのどこで使ってるか調べるの大変なのだ。そういう時のためにゼイクエリーマイグレイトっていうプラグインがあるんだよ。マイグレートコって意味なの?そう。ジェイクヘリー公式が提供してる移行用のプラブインなんだ。使い方は簡単で Jにスクリプトを1つ追加するだけだよ。追加するとどうなるの?翡 水晶のAPI を使ってる箇所があるとコンソールに警告を出してくれるんだ。例えばドリムを使ってたらこれは削除されたからストリングプロトタイプトリムを使ってね教えてくれる。コード全体をグレップで検索するよりはかに楽なのだ。しかもね、削除されたAPI を一時的に復活させて動くようにしてくれるんだよ。つまりJ4.0 に更新してもいいなり壊れないってこと。そういうこと。警告を見ながら少しずつ直していけるんだ。眼に移行できるのは審議的にも安心なのだ。
ただし注意点だってマイグレイとは開発環境でだけ使うものなんだよ。本番環境には入れちゃダめってこと。うん。警告を全部潰してネイティブ API に置えてからリースするのが正しい流れだね。
次は J4.0 の技術的に大きな変更点を紹介するね。ESモジュールズ景式に対応したんだよ。ES モジュールズってインポートとかエクスポートで読み込むやつなの?そうそう。リアフトと加を使ってる人には同じにの書き方だよね。Jクリ4.0 からはインポートジュエリーってかけるようになったんだ。無駄な感じなのだ。今までは対応してなかったの。以前はMDっていうリクアJS で使う形式だったんだよ。直接インポートするにはちょっとした設定が必要だったんだ。リクワヒアJS は昔のプロジェクトで見たことあるのだ。
モジュールズに対応したことでバイトやブパックとの相性がすごく良くなったんだよ。バイトを使ってる現場だとエリーも同じようにインポートできるってことなの?その通りロールップにも対応してるからモダンなビルド環境に自然に溶け込めるんだ。既損のプロジェクトに Jクエリーを足したい時もNPM インストールしてインポートすればいいのだ。スリーキングの恩恵も置けやすくなったからバンドルサイズの最適化もしやすいよ。
でも従来のスクリクトタグで読み込む方法はどうなったの?もちろん今まで通りCDN からスクリプトで読み込む方法も使えるよ。後方完成はしっかり維持されてるから安心してね。新しいプロジェクトはES モジュールズ。レガシーはスクリプトタグって使い分けられるのだ。ジェイクレイリーも時代に合わせてちゃんと進化してるってことだね。
次はアチャックス周りの改善について話していくね。ジェイク4.0 でホームデータの扱いがすごく楽になったんだよ。ホームデータってハイルアップロードとかで使うやつ?そう、ホームのデータをまとめて送信する時に使うオブジェクトだよ。前にJ クエリーでハイルアップロード実装したことあるのだ。コンテンタイプとプロセスデータを手動デフルスにする必要があったよね。そうそう。それを忘れるとリクエストが壊れちゃうんだよね。J4.0 ではホームデータを渡すだけで自動的に設定してくれるようになったんだ。アジャックスのデータオークションにホームデータをそのまま渡せばいいの?そういうこと。コンテンタイプはブラザーが自動で設定してくれるし、プロセスデータもホルスになるからデータが壊れる心配もないんだ。毎回お間みたいに書いてた設定が不要になるってことなのだ。
しかもホームデタだけじゃなくてバイナリデタ全般がされたんだよ。ブログとかも同じように直接渡せるようになったの?うん。ジェイクヘリーが内部でワイナリーデかどうかを判定して適切に処理してくれるんだ。画像のプレビューアップロードとか実装がすっきりしそうなのだ。順だけど実務でファイル回りを扱う人には嬉しいアップデートだよね。設定忘れではまった経験があるから改善は本当にありがたいのだ。開発者のつまづきやすいポイントをちゃんと解消してくれてるんだね。
次はちょっとマニアックだけど重要な変更点を紹介するね。フォーカス観念のイベント発順序が変わったんだよ。フォーカスイベントって入力プランをクリックした時とかに発生するやつなの?そうそう。フォーカスとブラー。それにフォーカシンとフォーカスとの 4つがあるんだ。4 つもあるのか?それぞれ何が違うの?フォーカスとブラーはその要素自体に発生するイベントなんだ。フォーカシンとフォーカスとは親要素にもバブリングで伝わるイベントだよ。ホーム全体でどの入力欄がフォーカスされたか開始する時に便利そうなのだ。問題はこの4 つのイベントがどの順番で発するかだったんだ。昔はブラウザごとに発順序が笑だったんだよ。ブラウザ感で動きが違うとテストが大変そうなのだ。だから以前のジェイクエリーは独自に順序統一してたんだ。フォーカスとブラー、フォーカシフォーカスの順番だったんだよ。ジェイクエリーが間に入って順序を揃えてくれてたってことなのだ。
でも最近ブランサ川が W3C の仕様に統一されたんだよね。ジェイクリ 4.0 ではこのネイティブの順序に合わせる形に変更されたんだ。W3Cの仕様だとどういう順番になるの?ブラ、フォーカスとフォーカスフォーカの順番だよ。前と比べるとブラーとフォーカストの順番が役になってるのだ。そう、フォーカスとフォーカシンの順番も入れ替わってるんだ。もしイベントの発順序に依存したコードを書いてたら壊れる可能性があるのだ。ブラの音にフォーカストが来る前提で処理を書いてたりすると危ないね。バリデーション処理とかで順序に依存してることありそうなのだ。ジェイク4.0に移行する前にフォーカス 周りの処理は4チェックだね。でも長い目 で見れば裏ラウザとJクエリーの動きが 一致してくれた方が安心なのだ。コンボは Jクエリーを外になるから星も上がるよ。
次はスリムビルドについて話ね。スリムビルドジェイクエリーの軽量 版みたいなやつなの?そうだよ。アジャックスとかアニメーションの エフェクトを省いたミニマル構成の ジェイクリーなんだ。ジャックスを使わないサイトなら余計なコードを読み込まなくて済むってことなのだ。ジェイクエリ4.0 ではこのスリムビルドはさらにスリムになったんだよ。リファードとコールバックスっていうモジュールが新たに除されたんだ。リハードって動機処理を扱うためのジェイクエリー独自の仕組みだったよね。よく知ってるね。プロミスが標準化される前からジェイクエリーはリファードで非動機を扱ってたんだ。でも今はネイキブのプロミスがあるから必要なくなったってわけなの。IE1 以外のモダンブランサではネイティブロミスが全部使えるんだよ。アシンクアウトも当たり前に使える時代だからジェンクで特の仕組みは役目を終えたんだね。プロミスとアシンクアウェイトがあればファードは確かにいらないのだ。スリムルドはジックで約 19.5kBまで小さくなったんだよ。トム操作だけできればいいって場合には選択肢として魅力的なのだ。
ただし注意点であってIE11 をサポートする必要があるならフルバを使ってね。IE11 にはネイキブプロミスがないからデファードが必要になるってことなのだ。もしくはプロミスのポリフィルを入れる方法もあるよ。IE11 対応がなければスム必要ならフルバンタポリフィル平洋って覚えておくのだ。
ジェイクリ 4.0 の話をしてきたけどそもそもの話も一応しておくね。ジェイクレリー取り上げとりって何が違うのかって話。根本的に考え方が違うんだ。考え方の違い。どれも javascririptの ライブラリーじゃないの?
例え話で説明するね。部屋の模様買えを想像してみて。ジェイクエリーは自分で家具を持ち上げて動かすイメージなんだ。ソファをここに移動してテーブルをあっちに置いてでね、自分の手で 1つずつ動かしていく感じなのだ。一方でリアフトや流はインテリアコーディネーターに設定図を渡すイメージ。リリングリングにはソとテーブルを配置してねって完成型を伝えるんだ。最終的にどうなって欲しいかだけ伝えてやり方はお任せってことなの?その通り。ジェイクリーは命令型、リフと龍は宣言型と呼ばれてるよ。命令型はどうやるかを書いて、宣言型は何が欲しいかを書くってことなのだ。
ジェイクリーの大名詞といえばメソッドチェーンだよね。ボックス、アドクラス、 CSS、フェイドイみたいにドッで繋いで連続できるんだ。ソファーを動かしてクッションを置いてブランケットかけて作量を続けていく感じなのだ。そうそう。命令型の特地みたいな書き方で直感的に分かりやすいんだよ。デモリアクトとか龍にはメソッドチェーンってないよね。うん。そもそもアプローチが違うから必要ないんだ。リアクト竜では状態が変わると画面が自動的に更新されるからね。
あ、もう 1 つ気になってたことがあるのだ。ジェイクエリーはドムが状態を持つって聞いたことあるんだけどどういう意味なの?ジェイクエリーでは現在のを知りたければドムに聞きに行くんだよ。カウンタテキストで今のを取得するみたいにね。トム自体が真実の情報源になってるってことなのだ。一方でリアクト龍はジャ javとの変数が状態を持つんだ。友はその状態を画面に映しらしてるだけなんだよ。さっきの例えで言うとエリーは部屋を見に行って家株の配置を確認するイメージかな。リアクとりは設計図に配置が書いてあって部屋はそれを反映してるだけってことなの?まさにそのイメージだね。データの管理方法が根本的に違うんだ。
じゃあどっちがれてるの?ジェイクエリーはもう古いってこと?どちらが良い悪いじゃなくて用途によって使い分けるものなんだよ。既損サイトにちょっとした機能を追加するなら Jリーが手軽だし複雑な状態管理が必要な SPA を作るならリフと龍の方が向いてるんだ。道具は敵在適で選ぶべきなのだ。そういうこと。20 年経っても使われ続けてるのは Jにも価値があるからだよ。
さて、ジェイクり4.0 の変更点を一通り見てきたけど、振り返ってみようか。IEキリスで削除されたAPIS モジュールズ対応が大きな柱だったのだ。そうだね。メガシーンが行動を思い切って削除しつつもジェイクでいマイクレートで段階的に移行できる配慮もあったよね。いきなり壊れないように橋渡しを用意してくれてるのはジェイクへらしい優しさなのだ。20 年間ずっと後方完成を大事にしてきたライブラリーだからね。
でも正直これからJ を新規プロジェクトで採用することってあるのかな?新規の SDA を作るならリアフトやを選ぶことが多いと思う。でも WordPress のカスタマイズとか基本サイトへの機能追加ではまだまだ現役だよ。全ウェブサイトの約77% が使ってるって話最初に聞いた時は驚いたのだ。企業の業務システムとか長年運用されてるサービスではジェイクエリーが動き続けてるんだよ。そういう現場ではジェイクエリー 4.0 の知識も必要になってくるってことなのだ。
ジェイクエリーは古いじゃなくて成熟したライブラリーなんだと思うよ。20 年も現役で使われ続けてるのはすごいことなのだ。この動画がより 4.0 への移行やり替えの助けになれば嬉しいな。みんなも自分のプロジェクトに入った道具を選んでいくのだ。