どうも、らこです。LIGさん主催のng2CurryというイベントでAngular 2のライブラリ事情について話してきました
正直このスライド以上のことはほとんど喋ってないので、読んでください。
・・・ではあっけなさすぎるので、ざっくり5分で読めそうな要点だけ書きます。
前提
- TypeScriptわかる
- ComponentとかbootstrapくらいはAngular 2わかる
Angular 2におけるライブラリの特徴
- ES6 Modules形式でのインポート・エクスポート
- 型ベースのDI
- 公式から提供されるライブラリがお手本になる
- DIのことは Angular2のDIを知る - Qiita を読んでくれ
http
-
HTTP_PROVIDERS
をbootstrapに渡す -
Http
クラスには基本的にrequest()
メソッドがあるだけ -
Http
をDIして使うだけ -
Http
のメソッドはObservable
を返す - Angular 2はRxJSに依存してる
- なんで
Observable
なのかはこれ読んで - コンポーネント側では
Observable
をsubscribe()
して非同期な値を受け取るだけ
router
-
ROUTER_PROVIDERS
をbootstrapに渡す -
<base>
をHTMLに書いてないならAPP_BASE_HREF
もbootstrapに渡す -
#
でやりたいならHashLocationStrategy
を使う -
RouteConfig
でルート定義を書く -
<router-outlet>
にコンポーネントが描画される -
[routerLink]
でナビゲーション書ける -
Router
をDIすれば手続き的にナビゲーションできる -
Router#navigate
はPromise
を返す -
Promise
を使うと遅延ナビゲーションができる
コミケ
testing
-
angular2/testing
は便利だけどJasmine依存 -
angular2/http/testing
はMockBackend簡単に使える -
angular2/router/testing
はドキュメントないから待とうね
まとめ
- 今はまだAPIの細かい使い方を覚えるよりも全体の思想や雰囲気を掴んで、破壊的変更で折れないように半身で構えるのが無難。
- Observable(Stream)とPromiseは教養として理解しておきましょう
出た質問
- Dart版どうなの
- 普通に開発されてるけどDart版特有のバグとかエラーもあるらしくてつらそうな雰囲気
- Bootstrapとかマテリアルデザインとか使えるの
- AngularJSがそうだったようにCSSフレームワークと衝突することはない。マテリアルデザインのライブラリについてはng2-materialが鋭意開発中なので今年中には出る。
- Componentの名前衝突しない?
- W3CのCustomElementsの仕様に従って、
foo-bar
形式のハイフンで必ず2語以上にする形式を守れば、最初にネームスペースをつけるなどで衝突を避けられる。
- W3CのCustomElementsの仕様に従って、
- アニメーションは?
-
angular2/animate
があるはずなんだけどちゃんと動かせてないので壊れてるのか使い方が悪いのかわからない。今後調べます。 => 調べた
-
発表を振り返る
- 初めてフル英語のスライドにした。反応は悪くなかったけどもうちょっと記号とか使って直感的な表現多くしたほうがよさそう
- reveal.js、結構いい。
- もうちょっと発表慣れしたい。
- 会場の雰囲気だと全体の2割くらいしかAngular 2まだ触ってなくて、基礎も無いうちにライブラリの話はついてこれてなさそうだなーというのがあった。ちょっと分かる人からはrouterの遅延ナビゲーションの説明とかよかったみたいで安心した。
- まだAngular 2に関してはもっと本質的な部分の啓蒙が必要だなあと思った。ng-japan前に感触がつかめて発表者側としても勉強になった。
- 主催のLIGさんありがとうございました。カレーおいしかったです。