前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Web Components 笔记

Web Components 笔记

作者头像
申君健
发布2020-03-27 08:58:52
4140
发布2020-03-27 08:58:52
举报
文章被收录于专栏:前端侠2.0前端侠2.0

参考学习:MDN Web Components

关键字:ES2015类的自定义元素写法、全局声明自定义元素、shadowroot,生命周期事件

一、Es2015的自定义元素类

0、有自治元素自定义内置元素两种情况。

        自治元素必须继承自HTMLElement , 

         自定义内置元素继承自相应的元素类,HTMLXXXElement。

1、构造函数优先调用super()

2、创建shadow root后,才能插入标准元素,style等  。       shadow是具有正常Dom的方法,它的继承链:shadow= ShadowRoot类型=>DocumentFragment=>Node=>EventTarget =>Object       shadow可以附加到任何元素之上。

代码语言:javascript
复制
var shadow = this.attachShadow({mode: 'open'});

3、获取元素上自定义属性,是否有某属性(标准Dom方法)

代码语言:javascript
复制
var text    = this.getAttribute('text');
var bHasImg = this.hasAttribute('img')

4、生命周期

  • connectedCallback:当 custom element首次被插入文档DOM时,被调用。
  • disconnectedCallback:当 custom element从文档DOM中删除时,被调用。
  • adoptedCallback:当 custom element被移动到新的文档时,被调用。
  • attributeChangedCallback: 当 custom element增加、删除、修改自身属性时,被调用。必须指定要监听的属性, static get observedAttributes() {return ['w', 'l']; }

5、使用<template>插入元素

代码语言:javascript
复制
      var template = document.getElementById('element-details-template').content;
      shadowRoot.appendChild(template.cloneNode(true));

<template> 标记内部支持“具名的slot",  比如这样:<slot name="element-name"> 在使用自定义元素时,标记内部    <span slot="element-name">slot</span>    来替换占位slot。

二、声明标记

1、自治元素

代码语言:javascript
复制
customElements.define('popup-info', PopUpInfo);

2、自定义内置元素

代码语言:javascript
复制
customElements.define('expanding-list', ExpandingList, { extends: "ul" });

三、使用标记

1、自治元素

代码语言:javascript
复制
<popup-info img="img/alt.png" text="Your "/>

document.createElement("popup-info")

2、自定义内置元素

代码语言:javascript
复制
<ul is="expanding-list">
  ...
</ul>

四、总结

本以为自定义有许多内容要记录,实际却没有多少新知识、新API,它所使用的大都是DOM的操作!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Es2015的自定义元素类
  • 二、声明标记
  • 三、使用标记
  • 四、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档