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
Web Componentsを1年使って / jsfes 2016-10
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Kenichiro Kishida
October 16, 2016
Technology
510
0
Share
Web Componentsを1年使って / jsfes 2016-10
秋のJavaScriptt祭り 2016年10月 LT
Kenichiro Kishida
October 16, 2016
More Decks by Kenichiro Kishida
See All by Kenichiro Kishida
Compression Streams API によるブラウザネイティブなデータ圧縮/jsfes2025
sizuhiko
0
44
Compression Streams API によるブラウザネイティブなデータ圧縮 /phpstudy-182
sizuhiko
0
67
Code兄弟での CI/CDをいい感じにする方法 / phpstudy-2024-06
sizuhiko
0
220
Webアクセシビリティワークショップを社内でやってみた / phpconfuk-2024
sizuhiko
1
410
デベロッパーよ 健康でいるためには 寝て 旅をして 趣味を持って メンタル大切に / DE-RADIO-2023-06-26
sizuhiko
0
190
ヘビータブユーザーが ワークスペースの利用でどのように変わったか / 2023-05-16 Vivaldi User Meetup TOKYO 2023
sizuhiko
0
370
Node.js v18 ベースイメージを使った AWS Lambda アプリ開発におけつ光と影 / 2023-04-23 JavaScript Fes
sizuhiko
0
240
@swc-node/jest を使って テストを高速化する/jsfes-2022
sizuhiko
0
430
Rails 7の採用提案で注目を集め始めた Import maps の過去、現在、そして未来について/de radio 2
sizuhiko
2
1.5k
Other Decks in Technology
See All in Technology
Keeping Ruby Running on Cygwin
fd0
0
180
"おまじない"を卒業する ボイラープレート再入門
shunsuke_1b
1
120
「誰一人取り残されない」 AIエージェント時代のプロダクト設計思想 Product Management Summit 2026
mizushimac
1
1.8k
Pure Intonation on Browser: Building a Sequencer with Ruby
nagachika
0
210
巨大プラットフォームを進化させる「第3のROI」
recruitengineers
PRO
2
1.4k
ハーネスエンジニアリングをやりすぎた話 ~そのハーネスは解体された~
gotalab555
5
1.9k
PyCon JPに学ぶ『決め方の決め方』: TechLead Conference 2026
terapyon
1
100
国内外の生成AIセキュリティの最新動向 & AIガードレール製品「chakoshi」のご紹介 / Latest Trends in Generative AI Security (Domestic & International) & Introduction to AI Guardrail Product "chakoshi"
nttcom
4
1.5k
AI時代における技術的負債への取り組み
codenote
1
1.8k
社内エンジニア勉強会の醍醐味と苦しみ/tamadev
nishiuma
0
250
FessのAI検索モード:検索システムとLLMへの取り組み
marevol
0
100
20260423_執筆の工夫と裏側 技術書の企画から刊行まで / From the planning to the publication of technical book
nash_efp
3
620
Featured
See All Featured
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
250
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
140
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
53k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.7k
Google's AI Overviews - The New Search
badams
0
990
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.2k
The Spectacular Lies of Maps
axbom
PRO
1
710
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
440
Docker and Python
trallard
47
3.8k
Believing is Seeing
oripsolob
1
120
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
Transcript
8FC$PNQPOFOUT Λͬͯ ळͷ+BWB4DSJQUࡇΓCZ!TJ[VIJLP
,FOJDIJSP,JTIJEB 5PLZP +"1"/ TJ[VIJLP!HNBJMDPN !TJ[VIJLP IUUQTHJUIVCDPNTJ[VIJLP IUUQCMPHPQFOUPLZPKQ
େࣄͳ͜ͱ࠷ॳʹ
ͦ͏ͩ1PMZNFS͓͏ 1PMZNFS
1PMZNFS https://www.polymer-project.org
˞썪쎅-5쎆ൃදऀ쎅 ɹมଶత쎁1PMZNFSѪ쎂ຬ썸썽썛쎕썰 ɹ썫ҙ썦썷썬썛
͍ͨ͘ͳΔཧ༝ w ֶशίετ͕͍ +4͕গͳΊʣ w 41"͡Όͳͯ͘ྑ͍ w 8$ඪ४ʹ͍ۙʢಠࣗͰͳ͍ʣ w ͢Ͱʹଟͷίϯϙʔωϯτ͕͋Δ
w υΩϡϝϯτ͕ॆ࣮͍ͯ͠Δ w Ϋϩεϒϥβʢ1PMZpMMʣ
Α͘ݴΘΕΔ͜ͱ w ͱΜ͕ͬͯΔͶʂ w ͍ͬͯΔਓ͡Ίͯݟͨ w ͑Δͷʁ w ੲ
ͬͨ͜ͱ͋Δ w ͭΒ͘ͳ͍ʁ
w W w WW w WW w W w W
w W w W w W w W https://github.com/Polymer/polymer/releases 89 Releases!!
ۤ썮썴썝썢ɺࠔ썺썶쎁 ۤ썮썛쎅쎆썶쎡લ쎁쎪썷써쎀쎁 쎆ւਤ쎅쎁썛ߤ࿏쎩ߦ썦쎪썷쎤ʁ ઓ썰쎢쎅쎙ɺੜ쎖ग़썰쎅쎙ɺۤ썮썛쎟 썾쎙ɺॆ࣮썮썽쎢 ʮ࢛݄܅ͷӕʯΑΓ༗അެਖ਼ͷ໊ݴ
Α͔ͬͨ͜ͱ w )5.-λά࠶ར༻ੑ͕ߴ͍ w ಈ͖ͷ͋Δϖʔδ͕؆୯ʹ࡞ΕΔ w ϒϩοΫΛΈཱͯΔΑ͏ͩ w άϩʔόϧԚછͳʹͦΕ w
͡ΊͯͷਓೃછΈ͍͢ w ʢ׳Εͨਓ͕͍ͨํ͕ྑ͍ʣ
͍ͨ͘ͳΔཧ༝ w ֶशίετ͕͍ +4͕গͳΊʣ w 41"͡Όͳͯ͘ྑ͍ w 8$ඪ४ʹ͍ۙʢಠࣗͰͳ͍ʣ w ͢Ͱʹଟͷίϯϙʔωϯτ͕͋Δ
w υΩϡϝϯτ͕ॆ࣮͍ͯ͠Δ w Ϋϩεϒϥβʢ1PMZpMMʣ
WebComponent ͬͯ·͔͢ʁ
8FC$PNQPOFOUT w4IBEPX%0. w$VTUPN&MFNFOUT w)5.-*NQPSUT w)5.-5FNQMBUFT https://github.com/w3c/webcomponents
ݱࡏʹϐϯΛཱͯͨਤΛද͍ࣔͨ͠
<div id="map"></div> <script src="https://maps.googleapis.com/maps/api/js? callback=createMap"> </script> <script> function createMap() {
navigator.geolocation.getCurrentPosition(position => { const map = new google.maps.Map(document.getElementById('map'), { center: { lat: position.coords.latitude, lng: position.coords.longitude}, zoom: 17 }); new google.maps.Marker({position: center, map: map}); }); } </script>
<geo-location latitude=“{{lat}}" longitude=“{{lng}}”/> <google-map latitude=“[[lat]]" longitude="[[lng]]" zoom="17"> <google-map-marker latitude="[[lat]]" longitude=“[[lng]]"
/> </google-map>
ಠࣗ$PNQPOFOUT <link rel="import" href="../bower_components/polymer/polymer.html"> <dom-module id="タグ名"> <template> <style> <!— 独自のCSS
—> </style> <!— 独自コンポーネントのHTML —> </template> <script> Polymer({ is: 'タグ名', properties: { hoge: {type: Boolean, value: false} // HTMLのタグ属性などを定義 }, ready: function() { // コンポーネントが利用可能になったときの処理 } }); </script> </dom-module>
+BWB4DSJQU쎆؆୯썾썤썷써쎀 썴쎣쎆8FC썾Ձ쎩ग़썰썶쎘쎅खஈ썾썙썺썽 +4গ쎁쎘썾쎙࠷େݶ쎂Ձ썣ग़썲쎢ํ๏ 썷썺썶쎡ɺ खஈ썣తԽ썮쎁썛썪썿썣 ॏཁ썷썿ࢥ썝쎪썾썰쎟 ͱ͋Δ࠙ձͰ1PMZNFSѪ͕͍͖͗ͨ͢ͱ͖ͷൃݴ
͍ͨ͘ͳΔཧ༝ w ֶशίετ͕͍ +4͕গͳΊʣ w 41"͡Όͳͯ͘ྑ͍ w 8$ඪ४ʹ͍ۙʢಠࣗͰͳ͍ʣ w ͢Ͱʹଟͷίϯϙʔωϯτ͕͋Δ
w υΩϡϝϯτ͕ॆ࣮͍ͯ͠Δ w Ϋϩεϒϥβʢ1PMZpMMʣ
w1PMZNFS w95BH w#040/*$ w4LBUF+4 w3FBDU+4 w"OHVMBS 8FC$PNQPOFOUT >8FC$PNQPOFOUTPSH
http://qiita.com/laco0416/items/a75da4d7c2f0a21e0344
http://qiita.com/ko2ic/items/2aa3090dec040bd78eeb
http://hayato.io/2016/shadowdomv1/
͍ͨ͘ͳΔཧ༝ w ֶशίετ͕͍ +4͕গͳΊʣ w 41"͡Όͳͯ͘ྑ͍ w 8$ඪ४ʹ͍ۙʢಠࣗͰͳ͍ʣ w ͢Ͱʹଟͷίϯϙʔωϯτ͕͋Δ
w υΩϡϝϯτ͕ॆ࣮͍ͯ͠Δ w Ϋϩεϒϥβʢ1PMZpMMʣ
https://elements.polymer-project.org/
w8FC$PNQPOFOUT w%BUB#JOEJOH w#FIBWJPST w)FMQFST w.BUFSJBM%FTJHO w$-*5PPMT
ಠࣗ$PNQPOFOUT <link rel="import" href="../bower_components/polymer/polymer.html"> <dom-module id="タグ名"> <template> <style> <!— 独自のCSS
—> </style> <!— 独自コンポーネントのHTML —> </template> <script> Polymer({ is: 'タグ名', properties: { hoge: {type: Boolean, value: false} // HTMLのタグ属性などを定義 }, ready: function() { // コンポーネントが利用可能になったときの処理 } }); </script> </dom-module>
֦ுλά <link rel="import" href="../bower_components/polymer/polymer.html"> <script> Polymer({ is: 'my-input', extends: 'input',
behaviors: [Polymer.IronValidatableBehavior], properties: { hoge: {type: Boolean, value: false} // HTMLのタグ属性などを定義 }, ready: function() { // コンポーネントが利用可能になったときの処理 } }); </script>
#FIBWJPST wڞ௨ॲཧΛఆٛͰ͖Δ wNJYJO
)FMQFST <iron-ajax url="/users" handle-as="json" method="GET" last- response="{{users}}"></iron-ajax> <ul> <template is="dom-repeat"
items="[[users]]" as="user"> <li>{{user.name}}</li> </template> </ul> <template is="dom-if" if="[[admin]]"> <div>管理者だったら何か</div> </template>
ͦ͏ͩ1PMZNFS͓͏ 1PMZNFS
WJTJUNZCMPHHJUIVC https://github.com/sizuhiko http://blog.open.tokyo.jp