Angular チームは最近、メジャー アップグレードを行った Angular 1.5 の正式バージョンをリリースしました。これにより、バージョン 1.X を使用している開発者は、より簡単に Angular 2 開発に移行できるようになります。
Pete Bacon Darwin は、リリースを発表するブログ投稿で、このリリースの目的は「Angular 2 のアップグレード パスを改善することです。開発者が Angular 1 に近いアプリケーションを作成できるようにするために、このリリースではいくつかの新機能を導入しました」と書いています。 Angular 2 で適用された構造に適用されます。」
このリリースでは、新しい module.component() ヘルパー メソッドが Angular 2 への移行における最大の変更点です。この方法を使用すると、開発者は従来のディレクティブ定義オブジェクト スタイルに従ってディレクティブを記述する必要がなくなりました。読者が既に Angular 2 の記述に慣れている場合は、この類似性に気づくはずです。この記事の中で、著者は例を通じて新しいコンポーネントを定義する方法を示しています。
myModule.component('myComponent', { template: '<h1>Hello {{ $ctrl.getFullName() }}</h1>', bindings: { firstName: '<', lastName: '<' }, controller: function() { this.getFullName = function() { return this.firstName + ' ' + this.lastName; }; } });
コンポーネントが登場する前は、開発者は通常、ディレクティブを使用するか、コントローラーを型破りに使用することで特定のシナリオを実現することしかできませんでした。ただし、これはコンポーネントがディレクティブの役割を完全に置き換えることを意味するわけではありません。たとえば、コンポーネントを使用して DOM を操作することはできず、すべてのコンポーネントはカスタム HTML 要素を通じてアクティブ化する必要があり、要素属性によるトリガーはサポートされません。上記の方法で定義されたコンポーネントは、次のコードを通じて使用できます:
<my-component first-name="'Alan'" last-name="'Rickman'"></my-component>
新しいコンポーネント ガイドでは、従来のディレクティブとコンポーネントの違いについてより完全な説明が提供されます。
一方向バインディング
ライフサイクルフック
必要なディレクティブにバインド
複数のスロットのトランスクルージョンをサポート
デフォルトのトランスクルージョンコンテンツ
現在バージョン 1.4 を使用している開発者は、バージョン 1.5 で重大な変更が導入されたため、移行ガイドを読んで移行時に必要な変更を学ぶことができます。
予見可能な期間では、バージョン 1.5 が最大の変更となるはずです。 InfoQ が Bacon Darwin にバージョン 1.X がどこに行くのか尋ねたとき、彼は次のように答えました:
Angular 1 の次のリリース サイクルの計画はまだ開始していません。 Angular 2 の正式リリース日が近づいているため、Angular 1 の開発を続ける場合は、Angular 2 に近づけるように努めます。これを達成するために重大な変更を導入する必要がある場合は、バージョン 1.6 が期待できます。同時に、Angular 1.5.x バージョンの開発を継続し、バグ修正といくつかの小さな機能を提供します。つまり、これは、Angular 1.X から Angular 2 への移行を容易にするという私たちの目標と矛盾するものではありません。
新しいコンポーネントルーター機能は今週後半にリリースされる予定です。興味のある方は、スクリプト ハウスの Web サイトに注目してください。