Vue 2.5 がリリースされました

Oct 14, 2017

このブログはこちらの翻訳ブログです。

私たちは Vue 2.5 レベル E のリリース発表に興奮しています!このリリースにはさまざまな機能の改善が含まれており、完全な詳細についてはリリースノートをチェックすることをお勧めします。この記事ではいくつかのより顕著な変更: TypeScript 統合の改善、エラー処理の改善、単一ファイルコンポーネント内の関数型コンポーネントのサポート改善、そして環境に依存しないサーバーサイドレンダリングを取り上げます。

TypeScript 統合の改善

TypeScript チームの助けを借りて、 2.5 はコンポーネントクラスのデコレータ無しに Vue の API そのままで動作する大幅に改善された型定義を提供します。新しい型定義は、 Vetur のようなエディタ拡張も備えているため、素の JavaScript ユーザーに対しても Intellisense のサポートが強化されています。詳細は、変更点に関する前回の記事をチェックしてください。

TypeScript チームからの Daniel Rosenwasser にはこの PR を開始することについて 、そしてコアチームのメンバーの Herrington DarkholmeKatashin にはこの変更の改善やレビューについて、それぞれ感謝いたします。

注:TypeScript ユーザーは型定義の互換性のため以下のパッケージも最新版にアップデートする必要があります:vue-routervuexvuex-router-sync 及び vue-class-component

エラー処理の改善

2.4及びそれ以前のバージョンでは、アプリケーションの予期せぬエラーを処理するためにグローバルの config.errorHandler オプションを典型的に使用していました。またレンダリング関数内のエラーを処理するための renderError コンポーネントオプションもありました。しかし、アプリケーションの特定の部分で一般エラーを扱うためのメカニズムがありませんでした。

2.5 で私たちは新しい errorCaptured フックを導入しました。このフックを持つコンポーネントは子コンポーネントツリー(自身を除く)からすべてのエラー(非同期コールバック内で発生したものを除く)をキャプチャします。もし React に精通しているなら、これは React 16で 導入された Error Boundaries の概念に似ています。フックはグローバルの `errorHandler` と同じ引数を受け取り、このフックを利用してエラーを安全に処理して表示することができます。

単一ファイルコンポーネント (SFC) 内での関数型コンポーネントのサポート改善

vue-loader >= 13.3.0 及び Vue 2.5 の組合わせで、 *.vue ファイル内の単一ファイルコンポーネントとして定義された関数型コンポーネントは今や適切なテンプレートコンパイル、スコープ付きCSS 及びホットリロードのサポートを楽しめます。このことはパフォーマンスを最適化するために末端のコンポーネントを関数型コンポーネントに変換することを極めて容易にします。

コアチームメンバーの Blake Newman にはこれらの機能に貢献したことを感謝します。

環境に依存しないサーバサイドレンダリング (SSR)

`vue-server-renderer` のデフォルトのビルドは Node.js 環境を想定しており、それ故 php-v8js や Nashorn などの代替 JavaScript ランタイムでは使用できません。 2.5 で私たちはブラウザや素の JavaScript エンジンで使用できる環境に依存しない vue-server-renderer のビルドを出荷しました。このことは PHP プロセスで直接 Vue サーバレンダリングを利用するなどの面白い戦略を開く可能性があります。


繰り返しとなりますが、v-onv-modelを含む他の API の改善、スコープ付きスロット、提供/注入などのために私たちは完全なリリースノートをチェックすることをお勧めします。チームが現在取り組んでいることを詳述しているパブリックロードマップにも興味があるかもしれません。それでは!