Movatterモバイル変換
[0]
ホーム
URL:
画像なし
夜間モード
Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Shumpei Shiraishi
PPTX, PDF
14,371 views
Web Component概要
Web Componentに関する概要スライドです。
Technology
◦
Read more
74
Save
Share
Embed
Embed presentation
Download
Downloaded 112 times
1
/ 54
2
/ 54
3
/ 54
4
/ 54
5
/ 54
6
/ 54
7
/ 54
8
/ 54
9
/ 54
10
/ 54
11
/ 54
12
/ 54
13
/ 54
14
/ 54
15
/ 54
16
/ 54
17
/ 54
18
/ 54
19
/ 54
20
/ 54
21
/ 54
22
/ 54
23
/ 54
24
/ 54
25
/ 54
26
/ 54
27
/ 54
28
/ 54
29
/ 54
30
/ 54
31
/ 54
32
/ 54
33
/ 54
34
/ 54
35
/ 54
36
/ 54
37
/ 54
38
/ 54
39
/ 54
40
/ 54
41
/ 54
42
/ 54
43
/ 54
44
/ 54
45
/ 54
46
/ 54
47
/ 54
48
/ 54
49
/ 54
50
/ 54
51
/ 54
52
/ 54
53
/ 54
54
/ 54
Recommended
PDF
jQuery Mobile 最新情報 & Tips
by
yoshikawa_t
PDF
jQuery Mobile 1.2 最新情報 & Tips
by
yoshikawa_t
PDF
jQuery Mobile 1.3 最新情報
by
yoshikawa_t
PDF
DOM Scripting & jQuery
by
smallworkshop
PDF
Vue Router + Vuex
by
Kei Yagi
PPTX
Magento meet up Tokyo#1 for Design
by
Miho Nakano
PDF
jQuery Mobile 概要
by
トモロヲ いちがみ
PDF
Vue.js 基礎 + Vue CLI の使い方
by
Kei Yagi
PDF
はじめてのVue.js
by
Kei Yagi
PDF
jQuery Mobileの基礎
by
Takashi Okamoto
PDF
Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)
by
Kei Yagi
PDF
SocialWeb Conference vol.5 OpenSocial Night #2
by
Nobuhiro Nakajima
PDF
0406web creators night_DeNA
by
DeNA_open_events
KEY
Google App Engine for Java
by
Takuya Tsuchida
PDF
WordPressとjQuery
by
Seto Takahiro
PDF
Twitter連携chrome extension作り方
by
Hiroshi Oyamada
PDF
jQuery Mobile(開発編)勉強会資料
by
Nobumasa Ura
PDF
20120118 titanium
by
Hiroshi Oyamada
PDF
TumblrTouch
by
Koji Ishimoto
PDF
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
by
Yutaro Miyazaki
PPTX
EWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いる
by
Kiyoshi Sawada
PDF
リアルFacebookガジェットを作った(ロングバージョン)
by
Mariko Goda
PPTX
EWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いる
by
Kiyoshi Sawada
PPTX
Jetpack Library 事始め
by
Tomohiro Kaizu
PDF
Jqm20120210
by
cmtomoda
PDF
ADRという考えを取り入れてみて
by
infinite_loop
PDF
最強オブジェクト指向言語 JavaScript 再入門!
by
Yuji Nojima
PDF
スマホデザインパターン なう
by
Android UI勉強会
PPTX
Webコンポーネントの話
by
Yusuke Hirao
PDF
React で CSS カプセル化の可能性を考える
by
Yutaro Miyazaki
More Related Content
PDF
jQuery Mobile 最新情報 & Tips
by
yoshikawa_t
PDF
jQuery Mobile 1.2 最新情報 & Tips
by
yoshikawa_t
PDF
jQuery Mobile 1.3 最新情報
by
yoshikawa_t
PDF
DOM Scripting & jQuery
by
smallworkshop
PDF
Vue Router + Vuex
by
Kei Yagi
PPTX
Magento meet up Tokyo#1 for Design
by
Miho Nakano
PDF
jQuery Mobile 概要
by
トモロヲ いちがみ
PDF
Vue.js 基礎 + Vue CLI の使い方
by
Kei Yagi
jQuery Mobile 最新情報 & Tips
by
yoshikawa_t
jQuery Mobile 1.2 最新情報 & Tips
by
yoshikawa_t
jQuery Mobile 1.3 最新情報
by
yoshikawa_t
DOM Scripting & jQuery
by
smallworkshop
Vue Router + Vuex
by
Kei Yagi
Magento meet up Tokyo#1 for Design
by
Miho Nakano
jQuery Mobile 概要
by
トモロヲ いちがみ
Vue.js 基礎 + Vue CLI の使い方
by
Kei Yagi
What's hot
PDF
はじめてのVue.js
by
Kei Yagi
PDF
jQuery Mobileの基礎
by
Takashi Okamoto
PDF
Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)
by
Kei Yagi
PDF
SocialWeb Conference vol.5 OpenSocial Night #2
by
Nobuhiro Nakajima
PDF
0406web creators night_DeNA
by
DeNA_open_events
KEY
Google App Engine for Java
by
Takuya Tsuchida
PDF
WordPressとjQuery
by
Seto Takahiro
PDF
Twitter連携chrome extension作り方
by
Hiroshi Oyamada
PDF
jQuery Mobile(開発編)勉強会資料
by
Nobumasa Ura
PDF
20120118 titanium
by
Hiroshi Oyamada
PDF
TumblrTouch
by
Koji Ishimoto
PDF
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
by
Yutaro Miyazaki
PPTX
EWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いる
by
Kiyoshi Sawada
PDF
リアルFacebookガジェットを作った(ロングバージョン)
by
Mariko Goda
PPTX
EWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いる
by
Kiyoshi Sawada
PPTX
Jetpack Library 事始め
by
Tomohiro Kaizu
PDF
Jqm20120210
by
cmtomoda
PDF
ADRという考えを取り入れてみて
by
infinite_loop
はじめてのVue.js
by
Kei Yagi
jQuery Mobileの基礎
by
Takashi Okamoto
Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)
by
Kei Yagi
SocialWeb Conference vol.5 OpenSocial Night #2
by
Nobuhiro Nakajima
0406web creators night_DeNA
by
DeNA_open_events
Google App Engine for Java
by
Takuya Tsuchida
WordPressとjQuery
by
Seto Takahiro
Twitter連携chrome extension作り方
by
Hiroshi Oyamada
jQuery Mobile(開発編)勉強会資料
by
Nobumasa Ura
20120118 titanium
by
Hiroshi Oyamada
TumblrTouch
by
Koji Ishimoto
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
by
Yutaro Miyazaki
EWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いる
by
Kiyoshi Sawada
リアルFacebookガジェットを作った(ロングバージョン)
by
Mariko Goda
EWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いる
by
Kiyoshi Sawada
Jetpack Library 事始め
by
Tomohiro Kaizu
Jqm20120210
by
cmtomoda
ADRという考えを取り入れてみて
by
infinite_loop
Viewers also liked
PDF
最強オブジェクト指向言語 JavaScript 再入門!
by
Yuji Nojima
PDF
スマホデザインパターン なう
by
Android UI勉強会
PPTX
Webコンポーネントの話
by
Yusuke Hirao
PDF
React で CSS カプセル化の可能性を考える
by
Yutaro Miyazaki
PPTX
Fork/Join Framework
by
Appresso Engineering Team
PDF
PyPy 紹介
by
shoma h
KEY
EC-CUBEプラグイン講義
by
ria1201
PDF
Node-v0.12のTLSを256倍使いこなす方法
by
shigeki_ohtsu
PDF
Node-v0.12の新機能について
by
shigeki_ohtsu
PDF
ECMAScript没proposal追悼式
by
京大 マイコンクラブ
PDF
C++の話(本当にあった怖い話)
by
Yuki Tamura
PDF
バグハンターの哀しみ
by
Masato Kinugawa
PDF
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
by
bitter_fox
PDF
Bitcoinを技術的に理解する
by
Kenji Urushima
PDF
ES6 in Practice
by
Teppei Sato
PDF
You Don't Know ES Modules
by
Teppei Sato
PDF
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
by
CODE BLUE
PDF
SSL/TLSの基礎と最新動向
by
shigeki_ohtsu
PPTX
自転車のVRシステムがあったら欲しいですか?
by
Chikara Tomioka
最強オブジェクト指向言語 JavaScript 再入門!
by
Yuji Nojima
スマホデザインパターン なう
by
Android UI勉強会
Webコンポーネントの話
by
Yusuke Hirao
React で CSS カプセル化の可能性を考える
by
Yutaro Miyazaki
Fork/Join Framework
by
Appresso Engineering Team
PyPy 紹介
by
shoma h
EC-CUBEプラグイン講義
by
ria1201
Node-v0.12のTLSを256倍使いこなす方法
by
shigeki_ohtsu
Node-v0.12の新機能について
by
shigeki_ohtsu
ECMAScript没proposal追悼式
by
京大 マイコンクラブ
C++の話(本当にあった怖い話)
by
Yuki Tamura
バグハンターの哀しみ
by
Masato Kinugawa
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
by
bitter_fox
Bitcoinを技術的に理解する
by
Kenji Urushima
ES6 in Practice
by
Teppei Sato
You Don't Know ES Modules
by
Teppei Sato
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
by
CODE BLUE
SSL/TLSの基礎と最新動向
by
shigeki_ohtsu
自転車のVRシステムがあったら欲しいですか?
by
Chikara Tomioka
Similar to Web Component概要
PDF
㉘HTML5+CSS3でアニメーション!
by
Nishida Kansuke
PDF
⑳CSSでアニメーション!その1
by
Nishida Kansuke
PPTX
J qmobiはjqueryから軽量化しているか
by
Hisashi Aruji
PDF
Objective Front-End JavaScript
by
Muyuu Fujita
PDF
Firefox OSアプリ 「ModeView」
by
Hideki Akiba
PPTX
Material DesignをPolymerで表現しよう(神戸ITフェスティバル × HTML5fun@神戸)
by
Masayuki Abe
PPTX
Web Components概要 2013/4/20 エフスタ!版
by
Shumpei Shiraishi
PDF
㉑CSSでアニメーション!その2
by
Nishida Kansuke
PDF
今度こそ始めるjQuery超入門
by
西畑 一馬
PDF
JavaScript Basic 02 jQuery
by
Yossy Taka
PDF
jQuery Performance Tips – jQueryにおける高速化 -
by
Hayato Mizuno
PDF
⑯jQueryをおぼえよう!その2
by
Nishida Kansuke
PDF
Webデザイン入門2-HTML5 フォーム,映像再生,音声再生, CSS3, レスポンシブWebデザイン-
by
Yossy Taka
PDF
WordBench Kobe jQueryどうでしょう
by
Hishikawa Takuro
PDF
jQueryでiTunes Store風スライドショーを作ってみる
by
Yasuhito Yabe
PDF
WebComponentsとPolymerを使ってみた
by
Nakazawa Yuichi
PDF
CSS Design and Programming
by
Taku AMANO
PDF
第一回Miim勉強会
by
Yuri Kawamoto
PDF
JavaScript04 jquery プラグインを使おう
by
Yossy Taka
PDF
jQuery Mobileカスタマイズ自由自在 v1.2
by
yoshikawa_t
㉘HTML5+CSS3でアニメーション!
by
Nishida Kansuke
⑳CSSでアニメーション!その1
by
Nishida Kansuke
J qmobiはjqueryから軽量化しているか
by
Hisashi Aruji
Objective Front-End JavaScript
by
Muyuu Fujita
Firefox OSアプリ 「ModeView」
by
Hideki Akiba
Material DesignをPolymerで表現しよう(神戸ITフェスティバル × HTML5fun@神戸)
by
Masayuki Abe
Web Components概要 2013/4/20 エフスタ!版
by
Shumpei Shiraishi
㉑CSSでアニメーション!その2
by
Nishida Kansuke
今度こそ始めるjQuery超入門
by
西畑 一馬
JavaScript Basic 02 jQuery
by
Yossy Taka
jQuery Performance Tips – jQueryにおける高速化 -
by
Hayato Mizuno
⑯jQueryをおぼえよう!その2
by
Nishida Kansuke
Webデザイン入門2-HTML5 フォーム,映像再生,音声再生, CSS3, レスポンシブWebデザイン-
by
Yossy Taka
WordBench Kobe jQueryどうでしょう
by
Hishikawa Takuro
jQueryでiTunes Store風スライドショーを作ってみる
by
Yasuhito Yabe
WebComponentsとPolymerを使ってみた
by
Nakazawa Yuichi
CSS Design and Programming
by
Taku AMANO
第一回Miim勉強会
by
Yuri Kawamoto
JavaScript04 jquery プラグインを使おう
by
Yossy Taka
jQuery Mobileカスタマイズ自由自在 v1.2
by
yoshikawa_t
More from Shumpei Shiraishi
PDF
俺的GEB概論(前半)
by
Shumpei Shiraishi
PPTX
コンセプトのつくりかた - アイデアをかたちにする技術
by
Shumpei Shiraishi
PPTX
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
by
Shumpei Shiraishi
PPTX
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
by
Shumpei Shiraishi
PPTX
JavaScript使いのためのTypeScript実践入門
by
Shumpei Shiraishi
PPTX
「それでも人生にイエスと言う」を読んで
by
Shumpei Shiraishi
PPTX
「それでも人生にイエスと言う」を読んで
by
Shumpei Shiraishi
PPTX
Angular2実践入門
by
Shumpei Shiraishi
PDF
WebRTCがビデオ会議市場に与えるインパクトを探る
by
Shumpei Shiraishi
PDF
変身×フランツ・カフカ
by
Shumpei Shiraishi
PPTX
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
by
Shumpei Shiraishi
PPTX
「1秒でわかる!アパレル業界ハンドブック」を読んで
by
Shumpei Shiraishi
PPTX
漫☆画太郎論
by
Shumpei Shiraishi
PPTX
HTML5時代のフロントエンド開発入門
by
Shumpei Shiraishi
PPTX
6,000人のWeb技術者コミュニティを5年間やってみて学んだこと
by
Shumpei Shiraishi
PPTX
はじめにことばありき
by
Shumpei Shiraishi
PPTX
秒速一億円
by
Shumpei Shiraishi
PPTX
HTML5がもたらすアプリ開発へのインパクト
by
Shumpei Shiraishi
PPTX
この人と結婚していいの?を読んで
by
Shumpei Shiraishi
PPT
20130921レジュメ2
by
Shumpei Shiraishi
俺的GEB概論(前半)
by
Shumpei Shiraishi
コンセプトのつくりかた - アイデアをかたちにする技術
by
Shumpei Shiraishi
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
by
Shumpei Shiraishi
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
by
Shumpei Shiraishi
JavaScript使いのためのTypeScript実践入門
by
Shumpei Shiraishi
「それでも人生にイエスと言う」を読んで
by
Shumpei Shiraishi
「それでも人生にイエスと言う」を読んで
by
Shumpei Shiraishi
Angular2実践入門
by
Shumpei Shiraishi
WebRTCがビデオ会議市場に与えるインパクトを探る
by
Shumpei Shiraishi
変身×フランツ・カフカ
by
Shumpei Shiraishi
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
by
Shumpei Shiraishi
「1秒でわかる!アパレル業界ハンドブック」を読んで
by
Shumpei Shiraishi
漫☆画太郎論
by
Shumpei Shiraishi
HTML5時代のフロントエンド開発入門
by
Shumpei Shiraishi
6,000人のWeb技術者コミュニティを5年間やってみて学んだこと
by
Shumpei Shiraishi
はじめにことばありき
by
Shumpei Shiraishi
秒速一億円
by
Shumpei Shiraishi
HTML5がもたらすアプリ開発へのインパクト
by
Shumpei Shiraishi
この人と結婚していいの?を読んで
by
Shumpei Shiraishi
20130921レジュメ2
by
Shumpei Shiraishi
Web Component概要
1.
Web Components概要2012/10/20株式会社シーエー・モバイル Web先端技術フェロー白石俊平(@Shumpei)
2.
自己紹介白石俊平と申します。コミュニティhtml5.org管理人(会員数5000名超)HTML5とか勉強会主催(毎月一回、100名を動員)Google API Expert
(HTML5)Microsoft Most Valuable Professional (IE9)Twitter: @Shumpei
3.
今日のアジェンダWeb Componentsとは何か?Web Componentsの構成要素
テンプレート デコレータ カスタム要素 Shadow DOMWeb ComponentsはWebをどう変えるか?
4.
Web Componentsとは何か?→WebのUIを「コンポーネント化」するための仕様群である。
5.
Webには、コンポーネント化が必要だ。
6.
メンテナンス性 Webには、コンポーネント
再利用性化が必要だ。 開発効率
7.
Web Components概要Googleによって仕様提案2012/10現在、Google Chromeが一部を実装済み一部の仕様が公式のドラフトとして公開
→一般的に使えるようになるにはまだ時間がかか りそう
8.
Web Componentsの構成要素Web Componentsを構成する4つの要素
テンプレート デコレータ カスタム要素 Shadow DOM
9.
HTMLテンプレート
10.
HTMLテンプレート現在、JavaScriptでUIをいじくる方法は2つある。 文字列テンプレート DOM操作
11.
HTMLテンプレート現在、JavaScriptでUIをいじくる方法は2つある。 文字列テンプレート
DOMを考慮しない 非標準 DOM操作<script id="tmpl1" type="text/x-handlebars-template"> <div>...</div></script>
12.
HTMLテンプレート現在、JavaScriptでUIをいじくる方法は2つある。 文字列テンプレート
DOM操作 コードが書きにくい 結果が予想しづらいvar div = document.getElementById('...');div.setAttribute('key', 'value');var p = document.createElement('p');p.innerHTML = '...';div.appendChild(p);
13.
HTMLテンプレート現在、JavaScriptでUIをいじくる方法は2つある。 文字列テンプレート
XSSの危険性 HTMLテンプレートで DOM操作 解決! コードが書きにくい 結果が予想しづらい
14.
HTMLテンプレートの定義方法<template>要素を使用する。
<template>内に、通常通りHTMLを記述する <template>はレンダリングされない <body>, <head>に定義 <html> <head> <template id="t"> <div id="message"></div> </template> </head> <body></body> </html>
15.
HTMLテンプレートを使用するcontentプロパティから、内部のDOMを取得する。 <template id="t">
<div id="message"></div> </template> var tmplElem = document.getElementById('t'); var tmpl = tmplElem.content.cloneNode(); … elem.appendChild(tmpl);
16.
HTMLテンプレートぶっちゃけ、これだけじゃ全然便利じゃない。デコレータ、カスタム要素で使用される汎用要素と理解すべき。「テンプレートである」というセマンティックを与えることができるのは良い。 今までの<script>要素よりは見通しが良い。 <script
type="text/x-handlbars-template"> </script>
17.
デコレータ
18.
CSSの限界を超える CSSの限界とは? DOMを操作することは
できない
19.
<ul> <li>
<i>アイコン</i> <span>自由人会議</span> <span>5</span> </li> …</ul>くらいで済みそうなものだけれど・・
20.
デコレータ要素を「デコレーション」するための仕組みHTML内で定義し、CSS内で使用する
21.
デコレータの定義<decorator>要素と<template>要素を使用して定義する。<decorator id="labelDecorator">
<template> ラベル: </template></decorator>
22.
デコレータの使用
CSS内で、decoratorプロパティを使って要素に 指定する。 /* 全てのlabel要素が「ラベル:」となる */ label { decorator: url(#labelDecorator); }<label for="name"> お名前</label><input id="name">
23.
デコレータの使用
テンプレート内で<content>要素を使用して、要 素内容を挿入する箇所を指定できる。 <decorator id="labelDecorator"> <template> <!-- ここに、要素内容が挿入される --> <content></content>: </template> </decorator><label for="name"> お名前</label><input id="name">
24.
複数の<content>要素を指定する<content>は複数指定できる。select属性を用いて、要素内容の一部を抜きだして挿入できる。<decorator id="fieldRowDecorator">
<template> <div> <!-- ここに、要素内容が挿入される --> <content select="label"></content>: </div> <!-- 残りの要素はここに挿入される --> <div id="field"><content></content></div> </template></decorator>
25.
複数の<content>要素を指定する
/* ラベルとフィールドの組み合わせ */ .fieldRow { decorator: url(#fieldDecorator); }<div class="fieldRow"><label for="name"> お名前</label><input id="name"></div>
26.
Advanced:デコレータのスタイリングスコープ付きのstyle要素を使用する。<decorator id="fieldRowDecorator">
<template> <style scoped>...</style> … </template></decorator>
27.
Advanced: デコレータ内のイベント処理
デコレータは、listen()というメソッドを使用してイベント ハンドラを登録する デコレータのコードが実行されるのは、ロード時に一度き り<decorator id="decorator-event-demo"> <script> function h(event) { alert(event.target); } this.listen( {selector: "#b", type: "click", handler: h}); </script> <template> <content></content> <button id="b">Bar</button> </template></decorator>
28.
デコレータあくまで表示目的の機能である。 Shadow DOM(後述)は持たない
デコレータで定義されたDOMには、アクセスす る手段がないスタイリング目的の余計なマークアップを劇的に減らすことができるため、非常に強力
29.
カスタム要素
30.
カスタム要素とは?要素を自作できる!!!!
31.
カスタム要素の定義<element>要素を使用するname属性に要素名を指定する 自作要素には「x-」という接頭辞をつけなくては
ならないextends属性に、継承元の要素を指定する <element name="x-fancybutton" extends="button"> <template> <!-- デコレータと同様 --> … </template> </element>
32.
カスタム要素の使用要素にis属性を指定して、カスタム要素の名称を指定する。対象となる要素は、カスタム要素のextendsと一致している必要がある<button is="x-fancybutton">
<span>ボタン</span></button>
33.
Advanced:カスタム要素のインスタンス化カスタム要素は通常の要素と同じく、document.createElement()でインスタンス化できる var e
= document.createElement('x-fancybutton');constructor属性で、コンストラクタを生成させることも可能 <element name="x-fancybutton" extends="button" constructor="FancyButton">...</element> var fancyButton = new FancyButton();
34.
Advanced: カスタム要素のクラス定義コンストラクタのプロトタイプを変更して、要素独自の振る舞いを追加する。<element ...
constructor="FancyButton"> <script> FancyButton.prototype.razzle = ... // constructor属性を使用しない場合は // 以下のコードでコンストラクタにアクセス // var FancyButton =this.generatedConstructor; </script> ...</element>
35.
Advanced:カスタム要素のライフサイクルカスタム要素は、以下の様なライフサイクルイベントを捕捉して処理を行える。 created
attributeChanged inserted removed<element extends="time" name="x-clock"><script>this.lifecycle({ inserted: function(){ this.startUpdatingClock(); }, removed: function() { this.stopUpdatingClock(); }});</script></element>
36.
Shadow DOM
37.
Shadow DOMとは?開発者の目から隠されたDOMツリー複雑な内部構造を隠蔽し、シンプルなDOMに見せかけることができる(=カプセル化)。
38.
Shadow DOMの実装状況Google ChromeにはShadow
DOMが実装されている。標準的な要素の多くが、Shadow DOMで実装されている。 video/audio/textarea/details/input...
39.
Shadow DOMを「見る」chrome://flagsにて、以下のフラグをオンにする。 Shadow
DOMを有効にする <style scoped>を有効にする Shadow DOMを自分で使うためには必要 デベロッパーツールのテストを有効にする Shadow DOMの内容を開発者ツールで見るために 必要
40.
Shadow DOMを見る標準的な要素が、Shadow DOMによって構築されていることを確認する。
41.
Advanced:Shadow DOMの動作を理解するShadow DOMを使用した要素(Shadow
Host)の「内側」には、2つのDOMツリーがある。 カスタム要素の定義<element name="x-fancybutton" に含まれるDOMツ extends="button"> リー。 <template> こちらのツリーは開 <content></content> 発者の目に見えない。 <div>...</div> (Shadow DOM) </template></element> カスタム要素内に入 れ子にしたDOMツ<button is="x-fancybutton"> リー。 <span>ボタン</span> こちらのツリーは、</button> Shadow DOMに取っ て代わられる
42.
Advanced:Shadow DOMの動作を理解する二種類のDOMツリー
43.
Advanced:Shadow DOMの動作を理解するShadow DOMに差し替えられる
44.
Advanced:
Shadow DOMの動作を理解する 元のDOMツリーは、<content>要素の位置に挿入 される<element name="x-fancybutton" extends="button"> <template> <content></content> <button is="x-fancybutton"> <div>...</div> <span>ボタン</span> </template> <div>...</div></element> </button><button is="x-fancybutton"> <span>ボタン</span></button>
45.
Advanced: Shadow DOMを使うChrome上では既に、Shadow
DOMのAPIが利用可能となっている。WebKitShadowRootを用いて、任意の要素をShadow Hostにすることができる。
46.
Advanced:
Shadow DOMを使う 以下のコードを、Shadow DOM APIを使用して 整形する。<!DOCTYPE html><div id="shadowHost"> もともとあったDOMツリー</div><div id="shadowSubtree"> <style scoped> #origTree { color: red; } </style> <h1>Shadow DOM Subtree</h1> <div id="origTree"> <content></content> </div></div>
47.
Advanced:
Shadow DOMを使う// Shadow Hostとなる要素を取得var shadowHost = document.getElementById('shadowHost');// Shadow Hostに変換// この時点で、元のDOMツリーは一旦非表示にvar shadowRoot = new WebKitShadowRoot(shadowHost);// Shadow DOM サブツリーになる要素var shadowSubtree = document.getElementById('shadowSubtree');// Shadow DOM サブツリーとして指定// 表示されるのはこちらの要素になる。// <content>要素の部分に、もとのDOMツリーが表示されるshadowRoot.appendChild(shadowSubtree);
48.
Web ComponentsはWebをどう変えるか?
49.
UIフレームワークの
利用方法が統一$('#list').somelist();<ul data-role="listview"> <ul is="x-somelist"></ul> </ul><ul dojoType="x.y.SomeList"></ul>
50.
外部コンポーネントの
読み込みlink要素を用いて、外部コンポーネントを読み込むことができる。 <link rel="components" href="URL"> CDNによるコンポーネント配信な どが期待できる!
51.
Web UI開発の分業が可能に
コンポーネント利用者 (ロースキル) HTMLマークアップ CSSスタイリング コンポーネント開発者 (ハイスキル) HTML/CSS/JSを駆使したコンポーネント開発 開発標準策定 サードパーティコンポーネントの選定など
52.
よりセマンティックな マークアップに複雑なマークアップをカプセル化することで、よりシンプルでセマンティックなマークアップに。
<textarea is="x-tweetbox" placeholder="ツイートする"> </textarea>
53.
WebComponentsには注目!数年後のHTMLマークアップは、今とは全く違うものになっているかも?いつまでも泥臭かったHTMLフロントエンド開発を、洗練されたものに。
54.
ご清聴ありがとうございました。
Follow me @Shumpei
Download
[8]
ページ先頭
©2009-2025
Movatter.jp