Polymerで自分のタグを作る
Polymerとは?
HTMLの標準タグ例えば<img>
、 <a>
、<div>
など、それぞれ自分の要素を持っています。<a>
タグにhref
要素をつけてあげるとリンクとして表示されます。<img>
タグのsrc
要素に画像のパスを渡せば、その画像がウェブ上に表示されます …
しかし、標準のタグはみんな簡単な機能しか実現できません。
「じゃあ、多数のタグ、CSS、JSの組み合わせを、一つのタグでまとめるのはどうでしょう?」
これがPolymerの提案です。Polymerはフロント要素をコンポーネント化するツールです。
Polymerを使うメリット
web開発者特にフロントエンジニア・デザイナーならよくわかると思うが、webサイトやアプリのフロントエンドはHTML+CSS+JavaScriptで作られています。基本的に:
- HTMLコードを書く
- CSSで各要素のレイアウトを決める
- JavaScriptで各要素(UI)の関連をつける
という流れです。案件によって、デザインはそれぞれ違いますが、共通要素は割と多いです。例えばトップページのスライド、モバイル向けのテーブルビューなど、毎回ほぼ同じのHTMLとJSを書くのがしんどいし、時間が勿体無いです。
それで、よく使う要素をPolymerでコンポーネント化すれば、たった一個のタグを書いて、CSSで少し調整するだけで済むのです。
Polymerをダウンロード
Polymerのライブラリーを取得するには:
1.直接ダウンロード
Polymerはhttps://www.polymer-project.org/1.0/docs/start/getting-the-code.htmlからダウンロードできます。(下までスクロールして、ZIP DOWNLOADというボタンがあります)
2.bowerを使う
こちらは公式おすすめの方法です:
質問たくさん聞いてくるので、全部Enter
でスッキプしても大丈夫です。
タグを作ってみよう
まず簡単な例でPolymerの認識を深めよう:<my-avatar>
タグを作ります。
この例で作る
<my-avatar>
は、src
とcaption
要素を持っていて、画像と名前を表示してくれるタグです。
1. まずindex.html
にPolymerのライブラリを読み込む:
2. <my-avatar>
タグを定義する
my-avatar.html
を作って、下記のコードを書きます:
<dom-module></dom-module>
はPolymer専用のタグで、id
要素をmy-avatar
にすると、my-avatar
のスコープがあ作成されます。
3. <my-avatar>
のテンプレートを定義する
引き続きmy-avatar.html
を編集します:
<template>
タグで<my-avatar>
タグのテンプレートを定義します。と
は、<my-avatar>
のsrc
要素とcaption
要素の値を表示する場所です。要素はPolymer()
にproperties
というパラメタを渡して定義します。
4. スタイルをつける
スタイルは<dom-module></dom-module>
間に<style>
タグで定義できます。普通のCSSなので、いつものように書けば大丈夫です(スコープとかはPolymerがうまくやってくれるので、考えなくていいです)
5. <my-avatar>
タグを使う
index.html
を先ほど作ったmy-avatar.html
をインポートする:
そして、index.html
のbody
の間に<my-avatar>
タグを書きます:
<my-avatar>
タグは標準のHTMLタグではないので、普段だとブラウザに認識されず何も表示されないですが、Polymerを使って<my-avatar>
を定義したら期待通り表示されます:
まとめ
<my-avatar>
タグはあまり意味ないかもしれないが、もしサイトによく使うコンポーネント、例えばスライド、ギャラリー、ポップアップメニューなど、それぞれ一つのタグで完結できると、効率どれぐらい上がるか考えると、Polymerの良さがわかってくるでしょう。
Polymerについてもっと深く掘ります: