Vue.js 1.0.0 リリースしました

Oct 26, 2015

こんにちは HN ! Vue.js に精通していない場合は、より高い概要について、このブログ記事を読みたいかもしれません。

300 以上のコミットの後に、8 つのアルファ (alpha) バージョン 、4 つのベータ (beta) バージョン 、そして 2 つのリリース候補(RC)バージョン、今日、私は Vue.js 1.0.0 エヴァンゲリオン (Evangelion)のリリースを発表するのをとても誇りに思っています!それはコミュニティから全てのフィードバックなしには不可能でした。API の再設計プロセスに参加した全ての人びとに感謝します。

テンプレート構文を改善しました

1.0 のテンプレート構文は、多くの微妙な整合性の問題を解決し、Vue のテンプレートをより簡潔で一般的に読みやすくなります。最も注目すべき新機能は、v-onv-bind に対する省略記法構文です:

<!-- v-bind:href の省略 -->
<a :href="someURL"></a>

<!-- v-on:click の省略 -->
<button @click="onClick"></button>

子コンポーネントで使用したとき、カスタムイベントに対する v-on リッスン、そして v-bind は props をバインドするために使用することができます。省略記法を子コンポーネントで使用することでとても簡潔になります:

<item-list
:items="items"
@ready="onItemsReady"
@update="onItemsUpdate">
</item-list>

API を整理しました

Vue.js 1.0 の全体的なゴールは、大規模プロジェクトに適合することです。これは多くの非推奨な API がある理由です。ほとんど使用されているものを除き、非推奨のために最も一般的な理由は、その機能が保守性の損害パターンの結果につながるということです、具体的には、私達が非推奨になる機能を維持するのと、プロジェクトの他の部分に影響を与えることなく、単独でコンポーネントをリファクタリングするのが難しいです。

例えば、0.12 でのデフォルトアセットの解決は、コンポーネントツリーで親に暗黙的なフォールバックがあります。これは決定論的ではないコンポーネントを利用可能なアセットと、実行時に使用される題目を作ります。1.0 では、全てのアセットは厳密なモード (strict mode) で解決され、そして親への暗黙的なフォールバックはもはやありません。inherit オプションは、それはとにかく密結合されたコンポーネントにつながり、リファクタリングするのが難しいため、削除されます。

迅速な初期レンダリング

1.0 は古い v-repeat ディレクティブを v-for で置き換えます。同じ機能でそしてより直感的なスコープを提供することに加えて、v-for は大きいリストやテーブルをレンダリングするとき、初期レンダリングのパフォーマンス向上を 100% 提供します!

より強力なツール

Vue.js のコア以外でエキサイティングなものがあります。vue-loadervueify は以下を含む主要なアップグレードがあります:

vue-router と組み合わせると、Vue.js はライブラリ以上です。それは、複雑な SPA を構築するための頑固な基盤を提供します。

次は何をしますか?

1.0.0 の一般的な提案として、コア API は近い将来に対して安定版のままで、ライブラリは本番環境で使用するために準備されています。今後の開発は以下に焦点を当てます:

  1. vue-router の改善とそれの本番環境向けへの準備

  2. 開発体験の効率化。例えば、よりよい開発ツールと Vue.js プロジェクトとコンポーネントの scaffolding 向けの CLI

  3. チュートリアルのようなより学習リソースの提供と例