Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Angularのコンポーネントを知る
Search
ponday
May 29, 2017
Programming
0
100
Angularのコンポーネントを知る
Angular触ろうの会 in Fukuoka #2(2017/05/29)の発表資料です。
ponday
May 29, 2017
Tweet
Share
More Decks by ponday
See All by ponday
関数型でGoFのデザインパターンやってみる
honda
1
1.1k
TypeScriptの型表現
honda
10
2.9k
Web Componentsの今
honda
1
380
これまでのReact、これからのReact
honda
0
280
Gatsbyお試し
honda
0
110
styled-components or emotion?
honda
0
630
Web ComponentsとAngular
honda
0
130
Atomic Design周りについての私見
honda
1
620
え、まだWeb Componentsを未来の技術だと思ってるの?
honda
2
740
Other Decks in Programming
See All in Programming
ふかぼれ!CSSセレクターモジュール / Fukabore! CSS Selectors Module
petamoriken
0
150
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
110
[Do iOS '24] Ship your app on a Friday...and enjoy your weekend!
polpielladev
0
100
PHP でアセンブリ言語のように書く技術
memory1994
PRO
1
170
初めてDefinitelyTypedにPRを出した話
syumai
0
410
C++でシェーダを書く
fadis
6
4.1k
Click-free releases & the making of a CLI app
oheyadam
2
120
Contemporary Test Cases
maaretp
0
140
Remix on Hono on Cloudflare Workers
yusukebe
1
290
ECS Service Connectのこれまでのアップデートと今後のRoadmapを見てみる
tkikuc
2
250
シェーダーで魅せるMapLibreの動的ラスタータイル
satoshi7190
1
480
よくできたテンプレート言語として TypeScript + JSX を利用する試み / Using TypeScript + JSX outside of Web Frontend #TSKaigiKansai
izumin5210
6
1.7k
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Unsuck your backbone
ammeep
668
57k
Become a Pro
speakerdeck
PRO
25
5k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
410
How STYLIGHT went responsive
nonsquared
95
5.2k
Being A Developer After 40
akosma
86
590k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Navigating Team Friction
lara
183
14k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Transcript
AngularのComponentを知る Angularを触ろうの会 in Fukuoka #2 / May 29, 2017 ponday(@ponday_dev)
Profile ponday / 本田 裕介 (Honda, Yusuke) name - chibi-developer
- ng-fukuoka スタッフ community - Kotlin, Java, C# etc... - JavaScript - Angular, Vue.js skill
本日のテーマ
@Component
@Component - AngularのComponentを定義するときに付けるDecorator - @angular/coreに定義されている - Angular CLIでは『ng g component
<コンポーネント名>』で生成可能 - Directiveの一種 - DOMのテンプレートを持つComponent - DOMのテンプレートを持たないAttribute Directive - DOMの表示を制御するStructural Directive
@Component 実はこのComponent、結構オプションが多いんです
@Componentのオプション
selector
selector - ComponentのDOM上でのセレクタを定義する。 - ここで定義したセレクタをテンプレート上に記述することでコンポーネントが使用でき る。 - 本当にセレクタなのでタグ名以外でも指定可能。 - 例
- selector: ‘#component’ - selector: ‘.component’ - selector: ‘[component]’ etc…
selector 通常、コンポーネントのレンダリング後もレンダリング先のタグが残る。 残ってる
selector IDやクラス、属性を指定することでHTMLタグのみでレンダリング可 HTMLのタグのみ
encapsulation
encapsulation - CSSによるスタイリングのカプセル化の挙動を指定できる。 - 指定できるのは以下の3種類 - ViewEncapsulation.Emulated - デフォルト値 -
各要素に自動的に属性を割り当ててカプセル化を実現 - ViewEncupsulation.Native - Shadow DOMを使ってカプセル化を実現 - ブラウザのShadow DOM対応が必須。現状ChromeかOperaでしか動かない - ViewEncapsulation.None - カプセル化をせず、グローバルスコープに展開する。 - スタイルが一切指定されていない場合、自動的にNoneになるらしい
changeDetection
changeDetection:前提知識 - Change Detection = 変更検知 - Chenge Detectionを行う仕組み =
Change Detector - コンポーネントごとに保持 - DOMツリー同様に、Change Detectorのツリーが構成されている。 - 各プロパティ(@Inputなど)の値の変更をViewに反映 - zone.jsにより、DOMイベントやAjax通信などあらゆる非同期イベントの発生をフック。値の 変更をチェックする。 - 通常状態ではイベントが発生するたびにすべてのコンポーネントの値の変更を チェックしている。
changeDetection:前提知識 常にすべてのコンポーネントの値の変更をチェック → ムダが多い
changeDetection - Change Detectorの変更検知のタイミングを制御 - 指定できるのは以下の2種類 - ChangeDetectionStrategy.Default - デフォルト値
- このコンポーネントおよび配下について常に値の変更をチェック - ChangeDetectionStrategy.OnPush - @Inputの値が変わった場合にのみ値の変更をチェック - 入力に変更がない場合は配下のチェックをスキップ → 効率が良い - 値の変更 = 参照の変更なので注意が必要 (@Inputにオブジェクトを渡している場合、内部の値が変わっても変更とはみなされな い) - ChangeDetectorRef.markForCheck()を使ってに任意に変更検知させることも可能。
本編はここまで
ここからは宣伝
ng-fukuoka 設立しました! 代表 puku0x 副代表 gupuru スタッフ mya-ake, ponday
ng-fukuoka 設立しました! 代表 puku0x 副代表 gupuru スタッフ mya-ake, ponday ?
初回イベントやります!
ng-fukuoka Angular Meetup #1