Angular Info

Beta.12リリースと最近の動き

こんにちは、らこです。最近ng-japanやミートアップや普段の仕事などで忙しくて更新が滞ってました。

ng-japan

ng-japanお疲れ様でした!現地にいた方もYoutubeで見ていた方も楽しんでもらえたでしょうか?
私は「Angular 2の間違えない始め方」というセッションでトップバッターを務めさせてもらいまして、Twitterなんかの反応を見る限り好評だったようで嬉しいです。

全体のまとめはng-japan 2016 セッション資料まとめ - Qiitaが参考になるでしょう。

Beta.12リリース

Angular 2のBeta.12がリリースされました。予定外のリリースでバグがたくさん残っていたBeta.11の修正がメインですので、
Beta.11で入った変更も含めて紹介します

angular/CHANGELOG.md at master · angular/angular

@Viewアノテーションの廃止

前にも書きましたがついに廃止されました。今後は@Componentにビューの情報も含めることが必須になります。

そもそもなぜ@View@Componentが共存していたかというと、
@Viewは1つのコンポーネントに複数付けられることが想定されていたからです。
同じコンポーネントでも状態によってビューのテンプレートを切り替えたい、
同じロジックでもセレクタによってビューを変えたいなど、動的なビューの切り替えを想定したものでした。
ただし現状ではそれを実装することはコストが重く、需要もほとんどないので、一旦すべて白紙に戻して仕様から練り直すことになりました。

Zone.js 0.6.x

すぐにBeta.11が出てしまったのでほとんど気づかれていませんでしたが、Beta.10からZone.jsが0.6系になっています。
Zone.jsは0.5系までは単なるAngularのサブプロジェクトでしたが、0.6系からはES.next ProposalとなったZones仕様のpolyfillとして存在します。

Beta.11ではこの新しいZoneへの依存部分にバグがあったので、Beta.12で修正されました。
Beta.12の修正により、今まで必須だったZone.jsのlong-stack-traceがオプショナルになったので、commonjsでインポートする際は次の1行だけで実行可能になりました。

import "zone.js/dist/zone";

ただこれだとZoneをまたいだエラーのスタックトレースが追えなくなるので、特別な事情がなければlong-stack-traceも読み込んでおくほうが良いでしょう。

import "zone.js/dist/zone";
import "zone.js/dist/long-stack-trace-zone";

Zonesの仕様

domenic/zones: Zones proposal for JavaScript

peerDependenciesからes6-promiseを削除

peerDependenciesからes6-promiseが削除されました。
Zone.js 0.6系がPromiseのpolyfillを兼ねるようになったらしいので、ブラウザの対応状況に変化はありません。

今後のイベント情報

最近はAngular 2の機運もあって日本でたくさんAngularのイベントが開催されています。
募集開始直後に埋まってしまうものがほとんどなので、まだ参加できるものを紹介します

AngularJSハンズオン(初心者向け) in 広島 - Crunch-Lab

広島で開催されるAngularJSのハンズオンです

ng-conf extended Tokyo

私が主催するng-confのライブビューイングイベントです。これは抽選制にするので先着で埋まることはないです。

その他

現在はRCに向けた作業がメインでコアチームは多忙なようですが、2,3週間後からはPRの整理を再開できるらしいです。
送ったパッチがなかなか取り込まれない期間でコントリビューションするにはやきもきしますが、今は待ちましょう。