首页 > 其他分享 >什么是webComponents

什么是webComponents

时间:2022-10-10 11:58:18浏览次数:47  
标签:container 自定义 dom 标签 什么 webComponents const shadow

前言:本文纯作者个人理解来讲述什么是web Components,说的不对的地方请指正。

webComponents的主要组成

1、Custom elements (自定义元素) 

2、Shadow Dom (影子dom)

3、Html template (Html 模版)

 

一、自定义元素

白话文理解:我可以自定义一些html标签,但是这些标签的名称必须包含连词线,用来区分原生html元素。例如 <user-info></user-info> 不能写成 <userInfo></userInfo>。

user-info 标签的具体实现

class UserInfo extends HTMLElement {
constructor(){
super();
var shadow = this.attachShadow( { mode: 'open' } );
const container = document.createElement('div');
container.classList.add('test');
container.innerHTML=`<p class="name">Bain</p><p class="age">12</p>`
shadow.append(container);
}
}
告诉浏览器<user-info>元素与这个类关联
window.customElements.define('user-info',UserInfo)

 

二、影子dom 

白话文理解:我不想让别人获取user-info 的shadowdom。这部分 DOM 默认与外部 DOM 隔离,内部任何代码都无法影响外部,外部代码也无法影响内部(例如:全局样式之类,获取dom节点之类)。这个就叫做影子dom 。

实现方式:

 this.attachShadow({mode:'open'})

具体现象如下:

document.querySelector('.test'); // null 无法获取testdom节点
// 全局设置 test样式无效

 

三、template标签

白话文理解:在js中写dom会比较麻烦,所以使用template标签定义dom

上文可以改写为:

<template id="userInfoTemplate">

<div class="container">
    <p class="name">Bain</p>
<p class="age">12</p>
</div>
</template>
class UserInfo extends HTMLElement {
constructor(){
super();
var shadow = this.attachShadow( { mode: 'open' } );
const ele = document.getElementById('userInfoTemplate');
const content = ele.content.cloneNode(true);
shadow.append(content);
}

}

 

标签:container,自定义,dom,标签,什么,webComponents,const,shadow
From: https://www.cnblogs.com/liuxuehua/p/16775126.html

相关文章

  • 工厂老板为什么不要国产设备,没有核心技术,靠组装无法成就未来
    稍微正规一点的工厂,里面大多都是国外设备,工厂老板为什么不选择国产设备?我想应该是因为国产设备价高质次,售后无保障,总体而言,性价比远不如国外设备。在工业装备领域,国产设备比......
  • 门面选址应该关注什么核心?这些核心不可忽视
     对于开店来说,门面选址一直都是极为重要的事情,好的选址可以让店铺更好地实现盈利。为此我们在选址时要关注一些核心,那么门面选址应该关注什么核心?下面铺先生为大家介绍这......
  • 什么是缓存雪崩?服务器雪崩的场景与解决方案
    目录什么是应用服务雪崩雪崩效应产生的几种场景缓存雪崩的解决方案雪崩的整体解决方案熔断设计隔离设计超时机制设计如何提前发现雪崩 什么是应用服务雪......
  • 为什么SAP ECC系统需要升级?升级路径有哪些?
    SAP系统是众多企业的主干系统。事实上,在福布斯全球2000强公司中,有87%是SAP客户。在过去的一年中,众多企业对其SAP环境进行了扩展。随着投资的增加,他们需要更优秀的系统管理方......
  • 什么是爬虫并发和连接数,并发和连接数的区别
    什么是并发呢?通俗的讲,就是同时运行的请求数。很多人说,不对啊,我1秒钟就一个请求,并发应该是1啊,为什么突然之间告诉我并发五六百了呢?如果请求完了没关闭,就一直存在,一段时间后,就......
  • java中内存泄漏和内存溢出指什么呢?
    转自:http://www.java265.com/JavaMianJing/202110/16349105381543.htmljava中内存泄漏和内存溢出指什么呢?下文笔者讲述java中常见的内存泄漏和内存溢出的相关简介说明,如......
  • 为什么我会觉得它不好用?
    前段时间收到公司信息安全部门的同事发来文档,上面列了目前在用的PO(ProcessOrchestration)系统爆出的漏洞清单,好家伙,单单一个50000端口就有23个漏洞。我到官网查阅相关Note,居......
  • 为什么我会觉得它不好用?
    前段时间收到公司信息安全部门的同事发来文档,上面列了目前在用的PO(ProcessOrchestration)系统爆出的漏洞清单,好家伙,单单一个50000端口就有23个漏洞。我到官网查阅相关Note......
  • 面试官:工厂方法模式是什么?
    真正的大师永远怀着一颗学徒的心吃不了学习的苦就要吃生活的苦文章持续更新,可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】更有我为大家准备的福利哟!回复【项目......
  • 面试突击89:事务隔离级别和传播机制有什么区别?
    事务隔离级别和事务传播机制都是对事务行为的规范,但二者描述的侧重点却不同。本文这里所说的事务隔离级别和事务传播机制指的是Spring框架中的机制。1、事务隔离级别事......