Vueチームは最近Vue 3.4をリリースした。新しいリリースでは、2倍高速になったという新しいテンプレートパーサーと、不要なコンポーネントの再レンダリングを減らす、より効率的なリアクティビティシステムが特徴だ。
新しいリリースのために、VueチームはVueのテンプレートパーサーを書き直した。チームはこう説明している。
これまでVueは、多くの正規表現と先読み検索に基づく再帰下降パーサーを使用していました。新しいパーサーは、htmlparser2のトークナイザーに基づくステートマシントークナイザーを使用しており、テンプレート文字列全体を一度だけ繰り返し処理します。
書き換えの結果、チームは、テンプレートのサイズに関係なく、パーサーが一貫して2倍速くなったと発表した。さらに、この書き換えはいかなるブレークチェンジも起こさず、完全に後方互換性があるはずだ。パーシング速度の向上はエコシステム(Volar、vue-tsc、パーサーを使用する雑多なコミュニティプラグインなど)にも波及するはずで、結果としてビルド時間が短縮されるかもしれない。
また、Vue 3.4では、計算されたプロパティの不要な再計算の発生も減少している。対応するプルリクエストに詳細がある。
計算された新しい値が変更されない場合、computed、effect、watch、watchEffect、render 依存関係はトリガーされない
複数計算のみのトリガーエフェクト、同期ウォッチ、同期ウォッチエフェクト1回
配列シフト、シフト解除、スプライス(トリガーエフェクトのみ、同期ウォッチ、同期ウォッチエフェクト1回のみ)
コンポーネントは、そのデータ依存関係が変化すると再レンダリングする可能性があるため、それらの依存関係のリアクティブ計算の効率化により、不要なレンダリングが減少する可能性がある。
ある開発者はRedditで新リリースを祝福した。
今回も素晴らしいリリースで、重大な[変更点]はすべて予測可能で、片手の指で[変更点]を挙げることができる(TSXを使用しているのでなければ、手の指が6本ある方が良い)。
このリリースに関連する機能の完全なリストについては、開発者はリリースのブログ投稿を確認できる。
Vueは、シングルページアプリケーションを含むユーザーインターフェースを構築するためのプログレッシブフレームワークである。Vue.jsは、MITオープンソースライセンスの下で利用可能である。コントリビューションは、Vue.jsのGitHubパッケージを通じて歓迎されており、Vue.jsのコントリビューションガイドラインに従うべきである。