我的Polymer学习总结

Polymer简化了Web组件的创建声明,利用这一特性,以更少的代码更简单的方式构建复杂的交互式内容。我们就来一起学习Polymer吧。

注册元素

生命周期回调

属性监听

本地DOM模板

数据绑定

注册元素

注册新元素需要调用 Polymer({})方法,你必须要定一个名称,以便在浏览器中使用他,

名称必须是“xxx-xxx”,就是一定要带个“-”,并为标签名关联一个prototype原型,就是调用Polymer(),所传的{}元素对象!

<link rel="import"

href="bower_components/polymer/polymer.html">

<script>

// 注册 proto-element 元素

Polymer({

is: "proto-element",

// 增加方法到原型上

ready: function() {

this.textContent = "I’m a proto-element. Check out my prototype!"

}

});</script>

<!DOCTYPE html><html>

<head>

<script src="bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>

<link rel="import" href="proto-element.html">

</head>

<body>

<proto-element></proto-element>

</body></html>

<proto-element>元素初使化完成,ready方法会被调用,这里他为其设置元素内容,在浏览器上显示。这个方法就像构造器方法,可以做初使化工作!

扩展DOM元素

<link rel="import"

href="bower_components/polymer/polymer.html">

<dom-module id="dom-element">

<template>

<p>I’m a DOM element. This is my local DOM!</p>

</template>

<script>

Polymer({

is: "dom-element"

});

</script>

</dom-module>

<!DOCTYPE html><html>

<head>

<script src="bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>

<link rel="import" href="dom-element.html">

</head>

<body>

<dom-element></dom-element>

</body></html>

组合 DOM元素

<link rel="import"

href="bower_components/polymer/polymer.html">

<dom-module id="picture-frame">

<template>

<!-- scoped CSS for this element -->

<style>

div {

display: inline-block;

background-color: #ccc;

border-radius: 8px;

padding: 4px;

}

</style>

<div>

<!-- any children are rendered here -->

<content></content>

</div>

</template>

<script>

Polymer({

is: "picture-frame",

});

</script>

</dom-module>

<!DOCTYPE html><html>

<head>

<script src="bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>

<link rel="import" href="picture-frame.html">

</head>

<body>

<picture-frame>

<img src="images/p-logo.svg">

</picture-frame>

</body></html>

注:  <picture-frame>定义的CSS只会影响到该元素本身,就是说CSS的作用域只是在这标签内!

数据绑定

使用:{{}}, 数据变化会自动传播更新视图,同时也可以监听属性变化

<link rel="import"

href="bower_components/polymer/polymer.html">

<dom-module id="name-tag">

<template>

<!-- bind to the "owner" property -->

This is <b>{{owner}}</b>’s name-tag element.

</template>

<script>

Polymer({

is: "name-tag",

ready: function() {

// set this element’s owner property

this.owner = "Daniel";

}

});

</script>

</dom-module>

<!DOCTYPE html><html>

<head>

<script src="bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>

<link rel="import" href="name-tag.html">

</head>

<body>

<name-tag></name-tag>

</body></html>

声明属性

属性是 Polymer 元素一个重要组成部分。Polymer 声明的属性常见模式:

1、在注册新元素时,声明,可设置默认值

2、通过元素标签传递属性值

<link rel="import"

href="bower_components/polymer/polymer.html">

<dom-module id="configurable-name-tag">

<template>

<!-- bind to the "owner" property -->

This is <b>{{owner}}</b>’s configurable-name-tag element.

</template>

<script>

Polymer({

is: "configurable-name-tag",

properties: {

// declare the owner property

owner: {

type: String,

value: "Daniel"

}

}

});

</script>

</dom-module>

<!DOCTYPE html><html>

<head>

<script src="bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>

<link rel="import" href="configurable-name-tag.html">

</head>

<body>

<!-- configure a property from markup by setting

the corresponding attribute                 -->

<configurable-name-tag owner="Scott"></configurable-name-tag>

</body></html>

属性双向绑定

这和AngularJS模式是一样!

Polymer 捕获input事件,Polymer 更新元素属性,自动传播、更新视图

<link rel="import"

href="bower_components/polymer/polymer.html"><!-- import the iron-input custom element --><link rel="import"

href="bower_components/iron-input/iron-input.html">

<dom-module id="editable-name-tag">

<template>

<p>

This is a <strong>{{owner}}</strong>’s editable-name-tag.

</p>

<!-- iron-input exposes a two-way bindable input value -->

<input is="iron-input" bind-value="{{owner}}"

placeholder="Your name here...">

</template>

<script>

Polymer({

is: "editable-name-tag",

properties: {

owner: {

type: String,

value: "Daniel"

}

}

});

</script>

</dom-module>

<!DOCTYPE html><html>

<head>

<script src="bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>

<link rel="import" href="editable-name-tag.html">

</head>

<body>

<editable-name-tag></editable-name-tag>

</body></html>

注: input is="iron-input" 属性是Polymer 己实现的定义元素,他扩展了该元素!

原文来自:开源中国

时间: 2024-08-11 03:37:40

我的Polymer学习总结的相关文章

HTMl5/CSS3/Javascript 学习推荐资源

HTMl5/CSS3/Javascript 学习推荐资源 前端的定义应该是数据内容的展示,在国内大家都觉得前端只是HTML+CSS+Javascript,但是实际上与展示有关的都是前端,所以Ruby/Python/Nodejs/Java/ASP .NET只要和展示有关的部分都可以称之为前端.在这里由于篇幅的限制,我们只推荐与HTML+CSS+Javascript三者有关的前端技术 入门 w3school html5 简单HTML5的入门教程 w3school css3 简单的CSS3入门教程 J

Google Polymer以及Web UI框架

时代在进步,原本前端只是用来简单的数据显示以及提交数据到后端处理逻辑的地方,而随着SPA的发展,前端的逻辑也越来越是庞大,恰巧,今天看微博的时候,发现一个概念讨论的比较多,就是 Web Components,顺藤摸瓜,做了一些了解,发现 Polymer 这样一个或许是未来的东东,至少有一点,chrome将会原生支持.收集了一些资料,多家学习. 1. Polymer Polymer由以下几层组成: 基础层(Foundation)——platform.js:基本构建块,其中大部分API最终将成为原生

第一个Polymer应用 - (4)收尾工作

原文链接: Step 4: Finishing touches翻译日期: 2014年7月8日翻译人员: 铁锚 在本节中,会在卡片上添加收藏按钮,并可以通过切换选项卡(tabs)连接到不同的 <post-list> 控制器, 整个应用就算完成了.在本节中,您将学习: 声明事件处理(event handling) 向元素的原型(prototype)添加属性和方法(properties and methods) 自动节点查找(Automatic node finding) 编辑 post-card.

热烈祝贺Polymer中文组织网站上线

欢迎来到前端世界的明天 因为官网被墙, 所以 http://docs.polymerchina.org/ 其实是一件非常有意义的事. 组件化和重用,一直是编程界几十年来前进的方向和目标,随着时间的推移和需求的变化,前端开发已逐渐走进重用的时代,但这还不够,组件,组件,我们需要组件!!! Web Components将Web开发引入一个新的纪元,它完全基于传承自HTML的可封装易共用的Custum elements.站在一系列新的Web标准的顶端,Polymer使得无论是创建一个普通的按钮,还是一

前端需要学习的东西好多,加油加油!

Frontend Knowledge Structure 项目起源 还记得@jayli 的这幅前端知识结构图么. 图片的形式具有诸多的不便.缺失源图的我们,无法为此图贡献些什么,随着时间的迁移,或许有些技术点会发生改变,所以有了这个GitHub项目.我们可以通过协作的方式来共同维护这个项目.Git的历史记录也可以见证前端行业的一些变迁. 可视化效果 前端开发知识结构 前端工程师 浏览器 IE6/7/8/9/10/11 (Trident) Firefox (Gecko) Chrome/Chromi

前端学习之路

转载自:https://github.com/qiu-deqing/FE-learning必备基础技能 前端技能汇总(https://github.com/JacksonTian/fks)这个项目详细记录 了前端工程师牵涉到的各方面知识.在具备基本技能之后可以在里面找到学习 的方向,完善技能和知识面. frontend-dev-bookmarks(https://github.com/dypsilon/frontend-dev-bookmarks)是老外总结的前端开发资源.覆盖面非常广.包括各种

前端搬运工:零基础的前端开发初学者应如何系统地学习?前端掌握技能的学习路线

前端小伙伴们:[刚入门,但迷茫人群],请认真读完 下面的 淘宝web 大神总结,如果你对前端是真爱的话,并且坚信可以作为职业去改变你的生活,慢慢日积月累,按这个来吧,真的! 上半部分是 技术路线, 下半部分是掌握的知识框架+面面俱到,欢迎转载,但请注明出处! JS前端实用开发QQ群 :147250970  欢迎加入~! 张帅,大前端 (前端变化太快,以下内容我会不定期更新,第三方网站请不要转载,如果实在想转载,请只转载摘要,并保留原文链接,谢谢) 网站开发开发大致分为前端和后端,前端主要负责实现

设计师该如何学习前端

背景篇 在这个时代学习新东西,一定要善于使用 Bing/Google 等搜索引擎-网络上的资源非常丰富,自学能力也尤为重要,尤其是对于学习技术! 入门篇(HTML/CSS) 说起设计师希望学前端的初衷,大概还是因为各种华丽的网页特效/交互太过吸引人,这种感觉大概就是:"Hey,我的设计可以做成网页访问了呢!"好在,"展示"对于前端技术来说反而是最简单的部分.所以,放下你对"编程"两个字的恐惧,从"称不上是编程语言"的 HTML

进阶攻略|前端完整的学习路线

最近写了一篇关于前端一些常见轻便耐用的UI框架的小总结,很多小伙伴私信问我,要怎么学习前端,没有明确的方向,为了感谢大家的关注点赞打赏和喜欢,决定把前端的学习进阶之路稍微整理一下,也为了自己能在工作之中思路更加的清晰.姑娘水平能力火候不够尚在学习中,如有不足,欢迎批评指正补充. 初级阶段 阿里矢量图标库:http://www.iconfont.cn/ ps使用教程:http://www.16xx8.com/ JavaScript教程:http://www.runoob.com/js/js-tut