開発者に準備してもらおうと、jQueryチームがバージョン3.0のαリリースを発表した。コアチームメンバーのTimmy Willison氏はブログで多数の変更点を説明し、コミュニティにテストしてくれるよう頼んだ。
このリリースにはたくさんの破壊的変更が含まれている。最新バージョンにアップグレードする前に、開発者はコードをテストすることが重要だ。主な変更には以下がある。
.show()
と.hide()
のロジックがシンプルになった- Deferred ObjectsがPromises/A+互換になった
- アニメーションに
requestAnimationFrame
が使われるようになった
.show()
と.hide()
の実装方法に対して提案された変更は、きっとWeb開発者を悩ませることになるだろう。記事によると、これらメソッドのロジックは、エッジケースを次々とカバーしながら年々複雑になっている。レスポンシブデザインが標準になると、最近のデザインニーズに対応するため、さらにロジックが追加された。
バージョン3.0はこうした複雑さを捨て去り、display: none
をセットもしくはクリアするシンプルなメソッドに戻った。jQueryチームはこれが多くのコードを壊すことになるのを承知しており、次のようにアドバイスしている。
可視にするために、display: noneをデフォルトにセットしてから.show()を使うようなスタイルシートを使ってはいけません(.slideDown()や.fadeIn()のような要素を表示するためのメソッドも同様)。
Redditのディスカッションにおいて、Larry Davis氏 (lazd) は、ビルトインのHTML5プロパティhidden
を使って要素を表示したり隠したりすることを提案している。この機能は最近のブラウザでよく使われているが、古いブラウザとの互換性問題がある。しかしながら、Dave Methvin氏によると、こうしたよくあるシナリオでhidden
を使うのは、HTML5仕様の推奨に反しているという。
αバージョンには3.0と3.0 compatの2種類がある。これまでのバージョンと同様、メインリリースはIE9以上を対象としているが、compatバージョンはIE8をサポートする必要のある開発者用だ。
バージョン3.0のリリース日については発表されていない。
開発者は次のCDNを使うか、
https://code.jquery.com/jquery-3.0.0-alpha1.js https://code.jquery.com/jquery-compat-3.0.0-alpha1.js
次のnpmによって、新しいライブラリを試すことができる。
npm install jquery@3.0.0-alpha1 npm install jquery-compat@3.0.0-alpha1
今回のαにおける変更点の完全なリストはこの発表の末尾にある。開発者はGitHubでの議論に参加することを推奨する。