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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
ponday
May 29, 2017
Programming
0
130
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.6k
TypeScriptの型表現
honda
10
3.1k
Web Componentsの今
honda
1
460
これまでのReact、これからのReact
honda
0
320
Gatsbyお試し
honda
0
130
styled-components or emotion?
honda
0
710
Web ComponentsとAngular
honda
0
140
Atomic Design周りについての私見
honda
1
770
え、まだWeb Componentsを未来の技術だと思ってるの?
honda
2
870
Other Decks in Programming
See All in Programming
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
200
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
560
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
6.1k
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
380
高速開発のためのコード整理術
sutetotanuki
1
400
HTTPプロトコル正しく理解していますか? 〜かわいい猫と共に学ぼう。ฅ^•ω•^ฅ ニャ〜
hekuchan
2
690
Amazon Bedrockを活用したRAGの品質管理パイプライン構築
tosuri13
4
610
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
270
Architectural Extensions
denyspoltorak
0
280
SourceGeneratorのススメ
htkym
0
200
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
650
Apache Iceberg V3 and migration to V3
tomtanaka
0
160
Featured
See All Featured
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
91
New Earth Scene 8
popppiees
1
1.5k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
76
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
How to train your dragon (web standard)
notwaldorf
97
6.5k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.6k
Amusing Abliteration
ianozsvald
0
100
Darren the Foodie - Storyboard
khoart
PRO
2
2.4k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
Producing Creativity
orderedlist
PRO
348
40k
Building Applications with DynamoDB
mza
96
6.9k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
580
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