WebComponents

WebComponents

介绍及使用

CustomElementRegistry接口提供注册自定义元素和查询已注册元素的方法。使用 window.customElements属性可以自定义标签,扩展内置标签的功能。

<!--调用自定义标签-->
<demo-element></demo-element>
<!--调用基于内置元素创建的自定义元素-->
<p is="demo-element"></p>
<script>
//2.定义自定义元素的类
class DemoElement extent HTMLElement {	//继承最基础的标签结构,可以通过标签的$0的属性查看proto值
  constructor() {
  	super()
  	...
  }
}
//1.创建自定义元素
window.customElements.define('demo-element',DemoElement)//自定义元素使用customElements的define方法
window.customElements.define('demo-element',DemoElement,{extends:'p'})//基于内置元素创建自定义元素时需要进行配置

</script>

shadowDom

隐藏标记结构、样式、行为等。并与页面上的其他代码相隔离

<demo-element></demo-element>
<script>
class DemoElement extent HTMLElement {	//继承最基础的标签结构,可以通过标签的$0的属性查看proto值
  constructor() {
  	super()
  	const shadow = this.attachShadow({ mode: 'closed' })//设置为close拒绝组件外对DOM访问
	const image = document.createElement('img')
    image.src = 'https://s0.lgstatic.com/i/image6/M01/3F/75/CioPOWCeIdmAW_XDAAHS6o22j6M241.png'
    image.width = '200'
    shadow.append(image, span, style)
  }
}

window.customElements.define('demo-element',DemoElement)
</script>

HTMLtemplate

<template id="myTemplate">
    <style>
      span {
        background-color: orange;
      }
    </style>
    <img src="https://s0.lgstatic.com/i/image6/M01/3F/75/CioPOWCeIdmAW_XDAAHS6o22j6M241.png" alt="" width="200">
    <span>这是span1</span>
    <span>这是span2</span>
    <slot name="title"></slot>
  </template>
  <demo-element>
    <div slot="title">
      <span>这是插槽1设置的内容</span>
    </div>
  </demo-element>
<script>
	const shadow = this.attachShadow({ mode: 'open' })
    // 获取模板,并根据模板生成结构
    const template = document.getElementById('myTemplate')
    // 克隆模板内容,并生成
    shadow.append(template.content.cloneNode(true))
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值