SlideShare a Scribd company logo
1 of 24
Web Components
Taguchi Wataru
● 自己紹介
● Web Componentsとは
● コンポーネントの利用
● オリジナルコンポーネントの作成
アジェンダ
自己紹介
名前:田口航
職業:フロントエンジニア
一言:LPIC勉強中・・・
今日の発表内容
Web Components!
https://www.webcomponents.org/
Web Componentsとは
Googleが提唱しているWebのUIを部品化するプロジェクト。
W3Cが仕様を策定しています。
VueとかReactとかがコンポーネント化しているけど
きっとこれがフロントの標準になると思ってます。
Web Components使い方
例)
<link rel="import" href="original-button.html">
・・・
<original-button></original-button>
Web Componentsとは
下記4つの要素で構成されています
● Custom Elements
● Shadow DOM
● HTML Imports
● HTML Template
独自要素を定義することができる仕様
var XFoo = document.registerElement('x-foo');
document.body.appendChild(new XFoo());
Custom Elements
CSSをカプセル化する仕様
var root = document.querySelector('div').createShadowRoot();
root.innerHTML = '<style>h3{ color: red; }</style>' + '<h3>Shadow DOM</h3>';
Shadow DOM
他のHTMLを読み込む仕様
<link rel="import" href="/path/to/imports/stuff.html">
HTML Imports
JSで利用できるテンプレートの仕様
<template id="mytemplate">
<img src="" alt="great image">
<div class="comment"></div>
</template>
HTML Template
HTML TemplateでHTMLを記述し
Shadow DOMでCSSをカプセル化し
Custom Elementsで記述したHTMLを要素として定義し
HTML Importsで読み込み、利用する
組み合わせる
Web Componentsにはいろいろなコンポーネントが利用でき
る。
今回絵文字が降るemoji-rainを実際に利用してみます。
※確認にはwebサーバーが必要です
コンポーネントの利用
コンポーネントの利用
コンポーネントのインストール
インストールはbowerを利用
mkdir emoji-rain-demo && cd emoji-rain-demo
bower install emoji-rain
コンポーネントの利用
コンポーネントの読み込み
webcomponents-lite.jsは必須で読み込む。
その後、利用するコンポーネントを読み込む。
<script src="bower_components/webcomponentsjs/webcomponents-lite.js"></script>
<link rel="import" href="bower_components/emoji-rain/emoji-rain.html">
コンポーネントの利用
コンポーネント利用
読み込み後通常のHTMLタグと同じく利用する。
<emoji-rain active></emoji-rain>
コンポーネントの利用
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>zomg</title>
<script src="bower_components/webcomponentsjs/webcomponents-lite.js"></script>
<link rel="import" href="bower_components/emoji-rain/emoji-rain.html">
</head>
<body>
<emoji-rain active></emoji-rain>
</body>
</html>
独自でWeb Componentsを作ることは可能。
しかしかなり大変・・・
そこで、Googleが開発しているPolymerというライブラリを
使います。
https://www.polymer-project.org/
オリジナルコンポーネント
Polymer CLIを利用して作っていきます。
Polymer CLIのインストールとコンポーネントのディレクトリ作成
npm install polymer-cli
mkdir my-elm && cd my-elm
オリジナルコンポーネント
コンポーネントを作成します。
何を作るか選択肢が出るので「polymer-2-element」を選択
し、コンポーネント名と説明を入力し完了。
polymer init
オリジナルコンポーネント
作成が完了するといくつかファイルとディレクトリが作成
されます。
先程入力したコンポーネント名.htmlがオリジナルコンポー
ネントです。
オリジナルコンポーネント
コンポーネントの確認はpolymer serveコマンドで確認でき
ます。
表示された「http://localhost:8080/components/{コンポー
ネント名}/demo/」にアクセスすると確認できます。
オリジナルコンポーネント
まとめ
● W3Cが仕様を策定している部品化プロジェクト
● 4つの仕様を組み合わせている
● 既にいろいろ配布されている
● Polymerを使うと簡単に作成できる
ご清聴ありがとうございました

More Related Content

What's hot

イマドキのフロントエンドエンジニアの道具箱
イマドキのフロントエンドエンジニアの道具箱イマドキのフロントエンドエンジニアの道具箱
イマドキのフロントエンドエンジニアの道具箱Fumio SAGAWA
 
【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会Yuki Okada
 
WebComponentsとPolymerを使ってみた
WebComponentsとPolymerを使ってみたWebComponentsとPolymerを使ってみた
WebComponentsとPolymerを使ってみたNakazawa Yuichi
 
View customize pluginを使いこなす
View customize pluginを使いこなすView customize pluginを使いこなす
View customize pluginを使いこなすonozaty
 
Redmineカスタムフィールド表示改善
Redmineカスタムフィールド表示改善Redmineカスタムフィールド表示改善
Redmineカスタムフィールド表示改善Yuuki Nara
 
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発Akira Inoue
 
Head First XML Layout on Android
Head First XML Layout on AndroidHead First XML Layout on Android
Head First XML Layout on AndroidYuki Anzai
 
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?Kosuke Ogawa
 
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframeworkSpring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframeworkToshiaki Maki
 
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門Yusuke Wada
 
JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門Shumpei Shiraishi
 
今からハジメるHTML5マークアップ
今からハジメるHTML5マークアップ今からハジメるHTML5マークアップ
今からハジメるHTML5マークアップSwapSkills
 
Mojolicious+redisでチャットを作った
Mojolicious+redisでチャットを作ったMojolicious+redisでチャットを作った
Mojolicious+redisでチャットを作ったTetsuya Tatsumi
 
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介Shotaro Suzuki
 
マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後Akira Inoue
 
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeomantomo_masakura
 
Static Web AppsとBlazor WebAssemblyのすすめ
Static Web AppsとBlazor  WebAssemblyのすすめStatic Web AppsとBlazor  WebAssemblyのすすめ
Static Web AppsとBlazor WebAssemblyのすすめTomomitsuKusaba
 

What's hot (20)

イマドキのフロントエンドエンジニアの道具箱
イマドキのフロントエンドエンジニアの道具箱イマドキのフロントエンドエンジニアの道具箱
イマドキのフロントエンドエンジニアの道具箱
 
HTML5, きちんと。
HTML5, きちんと。HTML5, きちんと。
HTML5, きちんと。
 
Angular2実践入門
Angular2実践入門Angular2実践入門
Angular2実践入門
 
【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会
 
WebComponentsとPolymerを使ってみた
WebComponentsとPolymerを使ってみたWebComponentsとPolymerを使ってみた
WebComponentsとPolymerを使ってみた
 
View customize pluginを使いこなす
View customize pluginを使いこなすView customize pluginを使いこなす
View customize pluginを使いこなす
 
Redmineカスタムフィールド表示改善
Redmineカスタムフィールド表示改善Redmineカスタムフィールド表示改善
Redmineカスタムフィールド表示改善
 
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
 
Head First XML Layout on Android
Head First XML Layout on AndroidHead First XML Layout on Android
Head First XML Layout on Android
 
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?
 
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframeworkSpring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
 
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門
 
JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門
 
今からハジメるHTML5マークアップ
今からハジメるHTML5マークアップ今からハジメるHTML5マークアップ
今からハジメるHTML5マークアップ
 
Mojolicious+redisでチャットを作った
Mojolicious+redisでチャットを作ったMojolicious+redisでチャットを作った
Mojolicious+redisでチャットを作った
 
iOS WebView App
iOS WebView AppiOS WebView App
iOS WebView App
 
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
 
マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後
 
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
 
Static Web AppsとBlazor WebAssemblyのすすめ
Static Web AppsとBlazor  WebAssemblyのすすめStatic Web AppsとBlazor  WebAssemblyのすすめ
Static Web AppsとBlazor WebAssemblyのすすめ
 

Similar to Web Components

20150729 polymer超入門
20150729 polymer超入門20150729 polymer超入門
20150729 polymer超入門Kazuyoshi Goto
 
WebComponentsとPolymer
WebComponentsとPolymerWebComponentsとPolymer
WebComponentsとPolymerTakahiro Maki
 
Polymerやってみた
PolymerやってみたPolymerやってみた
PolymerやってみたYosuke Onoue
 
Webコンポーネントの話
Webコンポーネントの話Webコンポーネントの話
Webコンポーネントの話Yusuke Hirao
 
Web Components概要 2013/4/20 エフスタ!版
Web Components概要 2013/4/20 エフスタ!版Web Components概要 2013/4/20 エフスタ!版
Web Components概要 2013/4/20 エフスタ!版Shumpei Shiraishi
 
マークアップエンジニアと情報アーキテクチャ
マークアップエンジニアと情報アーキテクチャマークアップエンジニアと情報アーキテクチャ
マークアップエンジニアと情報アーキテクチャ力也 伊原
 
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた日本マイクロソフト株式会社
 
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...Shotaro Suzuki
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Shotaro Suzuki
 
Web Standards 2018
Web Standards 2018Web Standards 2018
Web Standards 2018Shogo Sensui
 
[JavaOne Tokyo 2012] JavaFX and Web Integration
[JavaOne Tokyo 2012] JavaFX and Web Integration[JavaOne Tokyo 2012] JavaFX and Web Integration
[JavaOne Tokyo 2012] JavaFX and Web IntegrationKazuchika Sekiya
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発Akira Inoue
 
LabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training SlideLabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training SlideYusuke Tochigi
 
Lightning componentとlightning design system
Lightning componentとlightning design systemLightning componentとlightning design system
Lightning componentとlightning design systemNoriko Iwai
 
コンポーネント単位で考えるWeb制作
コンポーネント単位で考えるWeb制作コンポーネント単位で考えるWeb制作
コンポーネント単位で考えるWeb制作祐磨 堀
 
ネットワーク分散型フレームワークConView
ネットワーク分散型フレームワークConViewネットワーク分散型フレームワークConView
ネットワーク分散型フレームワークConViewRakuten Group, Inc.
 
Web audio control-webaudio.tokyo
Web audio control-webaudio.tokyoWeb audio control-webaudio.tokyo
Web audio control-webaudio.tokyoRyoya Kawai
 

Similar to Web Components (20)

20150729 polymer超入門
20150729 polymer超入門20150729 polymer超入門
20150729 polymer超入門
 
WebComponentsとPolymer
WebComponentsとPolymerWebComponentsとPolymer
WebComponentsとPolymer
 
Polymerやってみた
PolymerやってみたPolymerやってみた
Polymerやってみた
 
Webコンポーネントの話
Webコンポーネントの話Webコンポーネントの話
Webコンポーネントの話
 
Web Components概要 2013/4/20 エフスタ!版
Web Components概要 2013/4/20 エフスタ!版Web Components概要 2013/4/20 エフスタ!版
Web Components概要 2013/4/20 エフスタ!版
 
マークアップエンジニアと情報アーキテクチャ
マークアップエンジニアと情報アーキテクチャマークアップエンジニアと情報アーキテクチャ
マークアップエンジニアと情報アーキテクチャ
 
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
 
Angular2
Angular2Angular2
Angular2
 
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
 
Angular#Kanazawa
Angular#KanazawaAngular#Kanazawa
Angular#Kanazawa
 
React meetup 3_eight
React meetup 3_eightReact meetup 3_eight
React meetup 3_eight
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
 
Web Standards 2018
Web Standards 2018Web Standards 2018
Web Standards 2018
 
[JavaOne Tokyo 2012] JavaFX and Web Integration
[JavaOne Tokyo 2012] JavaFX and Web Integration[JavaOne Tokyo 2012] JavaFX and Web Integration
[JavaOne Tokyo 2012] JavaFX and Web Integration
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発
 
LabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training SlideLabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training Slide
 
Lightning componentとlightning design system
Lightning componentとlightning design systemLightning componentとlightning design system
Lightning componentとlightning design system
 
コンポーネント単位で考えるWeb制作
コンポーネント単位で考えるWeb制作コンポーネント単位で考えるWeb制作
コンポーネント単位で考えるWeb制作
 
ネットワーク分散型フレームワークConView
ネットワーク分散型フレームワークConViewネットワーク分散型フレームワークConView
ネットワーク分散型フレームワークConView
 
Web audio control-webaudio.tokyo
Web audio control-webaudio.tokyoWeb audio control-webaudio.tokyo
Web audio control-webaudio.tokyo
 

Web Components

Editor's Notes

  1. 知ってる人、使ったことある人を聞く
  2. 知ってる人、使ったことある人を聞く
  3. 知ってる人、使ったことある人を聞く
  4. 知ってる人、使ったことある人を聞く
  5. 知ってる人、使ったことある人を聞く
  6. 知ってる人、使ったことある人を聞く
  7. 知ってる人、使ったことある人を聞く
  8. 知ってる人、使ったことある人を聞く
  9. 知ってる人、使ったことある人を聞く
  10. 知ってる人、使ったことある人を聞く
  11. 知ってる人、使ったことある人を聞く
  12. 知ってる人、使ったことある人を聞く
  13. 知ってる人、使ったことある人を聞く
  14. 知ってる人、使ったことある人を聞く
  15. 知ってる人、使ったことある人を聞く
  16. 知ってる人、使ったことある人を聞く
  17. 知ってる人、使ったことある人を聞く
  18. 知ってる人、使ったことある人を聞く
  19. 知ってる人、使ったことある人を聞く
  20. 知ってる人、使ったことある人を聞く
  21. 以上になります、ご清聴ありがとうございました