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
470
これまでのReact、これからのReact
honda
0
330
Gatsbyお試し
honda
0
130
styled-components or emotion?
honda
0
720
Web ComponentsとAngular
honda
0
150
Atomic Design周りについての私見
honda
1
780
え、まだWeb Componentsを未来の技術だと思ってるの?
honda
2
880
Other Decks in Programming
See All in Programming
ベクトル検索のフィルタを用いた機械学習モデルとの統合 / python-meetup-fukuoka-06-vector-attr
monochromegane
2
440
Angular-Apps smarter machen mit Gen AI: Lokal und offlinefähig - Hands-on Workshop!
christianliebel
PRO
0
110
AI駆動開発の本音 〜Claude Code並列開発で見えたエンジニアの新しい役割〜
hisuzuya
4
510
コーディングルールの鮮度を保ちたい / keep-fresh-go-internal-conventions
handlename
0
200
エージェント開発初心者の僕がエージェントを作った話と今後やりたいこと
thasu0123
0
250
Cyrius ーLinux非依存にコンテナをネイティブ実行する専用OSー
n4mlz
0
150
野球解説AI Agentを開発してみた - 2026/02/27 LayerX社内LT会資料
shinyorke
PRO
0
310
モックわからないマン卒業記 ~振る舞いを起点に見直した、フロントエンドテストにおけるモックの使いどころ~
tasukuwatanabe
2
370
Agent Skills Workshop - AIへの頼み方を仕組み化する
gotalab555
15
8.8k
オブザーバビリティ駆動開発って実際どうなの?
yohfee
3
850
Vuetify 3 → 4 何が変わった?差分と移行ポイント10分まとめ
koukimiura
0
140
Fundamentals of Software Engineering In the Age of AI
therealdanvega
1
260
Featured
See All Featured
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
290
Information Architects: The Missing Link in Design Systems
soysaucechin
0
830
Raft: Consensus for Rubyists
vanstee
141
7.4k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
970
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
140
The Curious Case for Waylosing
cassininazir
0
270
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
The untapped power of vector embeddings
frankvandijk
2
1.6k
KATA
mclloyd
PRO
35
15k
ラッコキーワード サービス紹介資料
rakko
1
2.6M
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
550
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.1k
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