SlideShare a Scribd company logo
angular 1 脳で見るangular 2
自己紹介
株式会社シーエーアドバンス
新川盛幸
業務系社内システム
ruby on rails、angularjs
話すこと
1. 特徴
2. Template Syntax
3. Built-in Directive
4. Component指向
5. angular-cli
angularjsを触った事ある人向けに
なるべくangular1でいうコレがangular2でいうアレっていう形で話せればと思います。
Version
今から説明する事は、versionが変わっていろいろ更新される部分もあるかもしれません
が、どんな感じで書くのか、だいたいのイメージができればいいかなと思ってます。
試したversion = v2.0.0-alpha.44
今 = v2.0.0-alpha.46
特徴
速度
特徴
変更検知
特徴
開発言語の選択
angular2は生のjavascriptでも書けますが、typescript、dartなどのAltJSを選択して開発
できます。
普段はrubyに似た構文で書けるcoffeescriptで開発していますが、angularが推奨して
るっぽいのでtypescriptを使用した説明をします。
typescriptは次期javascriptの仕様となるES6由来の構文で書け、IDEのサポートも受けれ
ます。
特徴
例
特徴
angular1とどのくらい変わったか比較
angular2でも開発言語の選択での違いを比較
<my-app>タグを<h1>にする
簡単なディレクティブの定義の例
Angular 1
特徴
特徴
ng-appもng-controllerもなく、まとめてコンポーネント
(ディレクティブ)
$scopeもなくなり、thisを使う
TypeScript
特徴
TypeScript
特徴
Controller
Directive
必要なモジュールを
ロード
一番上の層のComponentは
bootstrapが必要
Template Syntax
{{}}
Template Syntax
{{}} = 展開
Filter => Pipe
Template Syntax
#
Template Syntax
# = エレメント
[]
Template Syntax
[] = プロパティバインディング
[]
Template Syntax
ng-* => [*]
[]
Template Syntax
angular 1.x angular 2.x
<img ng-src=”image_url”> <img [src]=”image_url”>
<a ng-href=”page_url”> <a [href]=”page_url”>
<div ng-show=”true”> <div [visible]=”true”>
<div ng-hide=”false”> <div [hidden]=”false”>
[]
Template Syntax
angular 1.x angular 2.x
<div ng-style=”color:red”> <div [style.color]=”red”>
<div [style.width.px]=”20”>
<div ng-class=”{‘active’:true}”> <div [class.active]=”true”>
<div [attr.class]=”active”>
()
Template Syntax
() = イベントバインディング
()
Template Syntax
ng-* => (*)
イベント
Template Syntax
<button ng-click=”onClick()”> <button (click)=”onClick()”>
<button ng-keyup=”keyup()”> <button (keyup)=”keyup()”>
<button (keyup.enter)=”enter()”>
<button ng-mouseover=”mouseover()”> <button (mouseover)=”mouseover()”>
ng-* => (*)
[()]
Template Syntax
[()] = 双方向データバインディング
[()]
Template Syntax
[()]
Template Syntax
角カッコ(プロパティバインディング )
[ng-model]だけでは値は入るが、変更
は検知しない
丸カッコ(イベントバインディング )
(ng-model-change)を利用して変更さ
れた値をnameに入れる
[()]
Template Syntax
[()]
Template Syntax
[] = プロパティ = ModelからViewへ
() = イベント= ViewからModelへ
[()] = 両方 = 双方向
Built-in Directives
ng-if
Built-in Directives
ng-if => *if
ng-repert
Built-in Directives
ng-repeat => *for
ng-model
Built-in Directives
ng-model => [(ng-model)]
ng-change
Built-in Directives
ng-change => (ng-model-change)
Component指向
Conponent
ConponentはController(ロジック)やView(html)を含んでいるパーツ
ログインフォームだったりメニューだったりをConponent化してまとめて作っていきます。
Component指向
Conponent
Component指向
Conponent
Component指向
適用するセレクタの指定 (restrict)
'cmp' = タグ
'[cmp]' = 属性
'cmp, [cmp]' = 両方
'button[cmp]' = buttonタグのcmp属性
Conponent
Component指向
展開するテンプレートの指定
templateで直接htmlを書いてもOK
Conponent
Component指向
適用するCSSの指定、なくてもOK
Conponent
Component指向
View側で使用するモジュールの指定
built-in directiveだったり、作成したコンポー
ネントだったり。
FORM_DIRECTIVESにはng−modelとか
が入っている。
使用するモジュールのロード
Shadow Dom
Componentが生成されるとShadow Domという要素になります。
htmlがカプセル化され、cssやjsが干渉しない要素
個人ならまだしもチームでcssを書いたり、大きいアプリケーションになるほどcssのクラス名
を全体に干渉しない名前を調べたり、htmlの子や孫セレクタで絞って適用したりするかと
思いますが、
読み込んだstyleはcomponent単位でのみ有効
Component指向
Shadow Dom
Component指向
my-componentは
BootstrapのCSSは当たるが
Shadow Dom
Component指向
my-componentがstyleUrlで
呼び出したcssは外部に影響しない
Componentの構造
Conponentの中に他のConponentを子として持ち、ツリー構造でアプリケーションを作っ
ていきます。
親は子にデータを渡したり、子は親にイベントを通知したりできます。
angular1でいう$scope.$broadcast、$scope.$onみたいなもの
Component指向
Componentの構造
Conponent指向
親から子へ(attribute)
Component指向
親から子へ(attribute)
Component指向
親が名前や年齢を渡す
子は@Inputで受け取る
子から親へ(event)
Component指向
子から親へ(event)
Component指向
親は子で定義された
eventを受け取る
子はEventEmitterを使って
eventを作る
作成したEventEmitterを
使ってeventを発行
angular-cli
https://github.com/angular/angular-cli
angular-cli
サーバー動かしたりlive-reloadとかtypescriptのコンパイルとか、
簡単にプロジェクトのセットアップをしてくれるnpmのパッケージ
簡単なscafoldがあったり、ディレクトリの分け方の統一ができたりする
angular-cli
SET UP
angular-cli
SCAFFOLD
angular-cli
angular1とかなり変わっていて、結構学習コストがかかりそうですが、速さの面でもメリット
が大きく、コンポーネント単位で組み立てていくangularjsは疎結合にしやすいし、一度
作ったコンポーネントの使い回しが楽そう。
紹介できたのはわずかですが、ajax周りとかanimationとか、まだまだ試せていないAPIが
いっぱいあるのでこれから勉強していきたいです。
angular-cliで簡単にangular2を試せるのでぜひ試してみてください。
Component指向
所感

More Related Content

PDF
Angular1&2
PDF
開発ライフサイクルから見たAngularJS
PDF
AngularJS 概説
PDF
Angular#Kanazawa
PDF
angular X designer - デザイナからみたAngularJS #ten1club
PDF
AngularJSからReactに移ったケースの話
PPTX
Angular2実践入門
PDF
Angular 4がやってくる!? 新機能ダイジェスト
Angular1&2
開発ライフサイクルから見たAngularJS
AngularJS 概説
Angular#Kanazawa
angular X designer - デザイナからみたAngularJS #ten1club
AngularJSからReactに移ったケースの話
Angular2実践入門
Angular 4がやってくる!? 新機能ダイジェスト

What's hot (20)

PDF
Angular2
PDF
俺とAngular JS 2
PDF
Directiveで実現できたこと
PDF
イベント駆動AngularJS / 今から書くAngular 2.0
PDF
Enterprise x AngularJS
PPTX
JavaScript使いのためのTypeScript実践入門
PDF
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
PDF
サーバサイドエンジニアが 1年間まじめにSPAやってみた
PDF
クリエイティブの視点から探るAngular 2の可能性
PPTX
Angular js開発事例
PDF
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
PPTX
AngularJSを浅めに紹介します
PPTX
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
PPTX
React を導入した フロントエンド開発
PPTX
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
PDF
JavaScriptと共に歩いて行く決意をした君へ
PDF
Flux react現状確認会
PPTX
10分でわかるOpenAPI V3
PDF
ng-mtg#6 AngularJS ディレクティブ・パターン
PDF
AngularJSについて
Angular2
俺とAngular JS 2
Directiveで実現できたこと
イベント駆動AngularJS / 今から書くAngular 2.0
Enterprise x AngularJS
JavaScript使いのためのTypeScript実践入門
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
サーバサイドエンジニアが 1年間まじめにSPAやってみた
クリエイティブの視点から探るAngular 2の可能性
Angular js開発事例
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
AngularJSを浅めに紹介します
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
React を導入した フロントエンド開発
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
JavaScriptと共に歩いて行く決意をした君へ
Flux react現状確認会
10分でわかるOpenAPI V3
ng-mtg#6 AngularJS ディレクティブ・パターン
AngularJSについて
Ad

Similar to angular1脳で見るangular2 (15)

PPTX
angularJS vs angular2
PPTX
Our Track to Modern Angular
PPTX
Our Track to Modern Angular #2
PDF
traceur-compilerで未来のJavaScriptを体験
PDF
AngularJS で ハイスピードSI
PDF
AngularJSでwebアプリを作ってみた!(2014/6/8 GDGKobe)
PDF
今からでも遅くない! 2から始めるangular js
PDF
ng-japan 2015 TypeScript+AngularJS 1.3
PDF
ngJapan報告会
PPTX
エンタープライズ分野での実践AngularJS
PDF
はじめてのAngular その1
PPTX
AngularJSを触ってみた
PPTX
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.2.0対応)
PDF
20140529 JS Ojisan #2 LT あの「note」はAngular.js
angularJS vs angular2
Our Track to Modern Angular
Our Track to Modern Angular #2
traceur-compilerで未来のJavaScriptを体験
AngularJS で ハイスピードSI
AngularJSでwebアプリを作ってみた!(2014/6/8 GDGKobe)
今からでも遅くない! 2から始めるangular js
ng-japan 2015 TypeScript+AngularJS 1.3
ngJapan報告会
エンタープライズ分野での実践AngularJS
はじめてのAngular その1
AngularJSを触ってみた
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.2.0対応)
20140529 JS Ojisan #2 LT あの「note」はAngular.js
Ad

angular1脳で見るangular2