TechFeed Live#2 「React vs Angular2」に参加登録したところ、定員オーバーによる抽選落ちからのキャンセル待ち繰り上がりで参加できたので、自分がうといWeb系技術の勉強がてら拝聴してまいりました。RC版のライブラリをものともせずガッツリと使い込んでいらっしゃる方々のアツいトークの中、初めて聞く単語をググりながら何とか自分なりに情報を拾えるだけ拾ってきました。
以下、覚書です。不勉強なため、間違い(解釈違い)な点もあると思いますが。。。
React
- Viewのライブラリ
- 状態・イベントの管理をするデザインパターンがある(オブザーバルパターン、Flux, Redux)
- これを組み合わせてもAngularエコシステム規模にはならない(足りない)
- 初期学習コストが高い
- 中級者になるまでの敷居が高い
- Javascript上級者が好む
- 好きにライブラリを組み合わせられる
Angular2
- "One Framework"、フルスタック
- RxJSとの組み合わせもあり?
- DI機能あり。ReactにはDIの考え方はない
- Angular2をReduxと組み合わせるとこの旨味がなくなる
- テストしやすい設計
- RCがRCじゃない。。。
- RC4 > RC5 > RC6, とAPIの変更が激しい
- 早ければ今月末にFinallyが出る
- minify前提(サイズが大きい)
比較観点から
開発言語
- ReactはJSXがないとつらい
- Angular2はTypeScript, ReactはBabel、というすみ分けはできている感じがする
- 開発者の慣れ、FW開発言語など
- どちらもDOMを直接いじらない
- React, Angular2問わず、開発規模が大きければTypeScriptが便利(静的型)。
- Javascriptを生で書くことはない。何らかのコンパイルは必須。
ビルドツール
- webpack,...
- どちらも違いはない
ルーティング
- Angular2のルーティング機能はよくできてきた
- ここ2-3ヶ月くらいの話。その前はひどかった
- 現状、汎用ルーティングライブラリのデファクトスタンダードというものがない
テンプレート
- Angular2はhtml寄り。
- ReactのJSXは文字列なのでコンパイル時チェックができない
XSS対策
- Angular2の圧勝
- ReactはURLを注入する場合など、開発者がちゃんとチェックする必要あり
- Angular2は厳しいほどチェックしてくれる
ツール
- WebStorm(IDE)
- React, Angular双方に力を入れている
- 固有記法のシンタックスハイライトなど
- React, Angular双方に力を入れている
テスト
- Angularはテストフレームワークが内包されている
- Reactはコンポーネントに状態を持たせないスタイルなのでテストしやすい
- コンポーネントが関数ベース
- DOMを管理するでかいシングルトンオブジェクトがある
- Angularはコンポーネントにステートを持たせる
パフォーマンス
- Angular2になってからReactと同等の速度になった
- Angular1は遅い。パフォーマンスが出ない場合はAngular1のせいにできた
サーバサイドレンダリング
- どちらもパフォーマンスは変わらない?
その他
- SWAGGER
- RESTFul APIを記述するための仕様
- yaml/jsonからコード生成