前端开发

 首页 > 前端开发 > javascript > 前端Web Components之customElements速查表代码速查属性Custom Elements 的意义Custom Elements 的分类CustomElementRegistry 对象最新评论添加评论

前端Web Components之customElements速查表代码速查属性Custom Elements 的意义Custom Elements 的分类CustomElementRegistry 对象最新评论添加评论

分享到:
【字体:
导读:
         [导读] 代码速查 生命周期 customElements.define(fancy-components,classextendsHTMLElement{constructor(){super()//相当于Vue的setupconsole.log(先运行构造函数)}connectedCallback(){//相当于Vue的mountedconsole.log(再运行连接回调...

代码速查

生命周期

    customElements.define('fancy-components', class extends HTMLElement {
      constructor () {
        super()
        // 相当于 Vue 的 setup
        console.log('先运行构造函数')
      }
      connectedCallback () {
        // 相当于 Vue 的 mounted
        console.log('再运行连接回调')
      }
      disconnectedCallback () {
        // 相当于 Vue 的 unmounted
        console.log('当删除组件时才会运行失联回调')
      }
      adoptedCallback () {
        // 当使用 document.adoptNode 后会触发该生命周期
        console.log('当使用 document.adoptNode 后会运行收养回调')
      }
    })

基础使用

    // 创建一个  的元素,名为 el
    const el = document.createElement('a-b-c')

    // 定义一个名为  的组件
    customElements.define('a-b-c', class extends HTMLElement {})

    // 获取  组件的构造函数
    customElements.get('a-b-c')

    // 升级我们之前创建的 el 元素
    customElements.upgrade(el)

    // 当  组件定义后
    customElements.whenDefined('a-b-c').then(
    () => { /* 当  组件定义后的回掉函数 */ }
    )

属性

  

  

特性

  

  

继承

  

  


Custom Elements 的意义

Web Components 标准非常重要的一个特性是,它使开发者能够将 HTML 页面的功能封装为 custom elements(自定义标签),而往常,开发者不得不写一大堆冗长、深层嵌套的标签来实现同样的页面功能。

Custom Elements 是网页组件化的基础,也是其核心。

Custom Elements 的分类

根据是否继承基础 HTML 元素,将 Custom Elements 分为两类。

Autonomous custom elements

是独立的元素,它不继承其他内建的 HTML 元素。你可以直接把它们写成HTML标签的形式,来在页面上使用。例如 ,或者是document.createElement("my-card")这样。

Customized built-in elements

继承自基本的HTML元素。在创建时,你必须指定所需扩展的元素,使用时,需要先写出基本的元素标签,并通过  is 属性指定custom element的名称。例如

, 或者 document.createElement("p", { is: "my-card" })。

CustomElementRegistry 对象

我们对自定义标签的概念等相关知识已有了解,那在实际开发中到底怎么使用自定义标签呢?这里就需要介绍一下 Custom Elements 的重点对象——CustomElementRegistry 对象。

要获取它的实例,请使用  window.customElements 属性。它的主要作用有:

  • 给页面注册一个自定义标签

  • 获取已注册的 Custom Elements 的相关信息

我们来看一下 CustomElementRegistry 对象的相关方法:


image-20220207214934295

image-20220207214934295


可以看到, CustomElementRegistry 对象包含四个方法:

  • CustomElementRegistry.define()

  • CustomElementRegistry.get()

  • CustomElementRegistry.upgrade()

  • CustomElementRegistry.whenDefined()


以上就是前端Web Components之customElements速查表全部内容,感谢大家支持自学php网。



分享到:
js的blob对象如何二次操作比如修改blob的...
在 JavaScript 中,Blob 对象是不可变的,意味着一旦创建,就无法直接修改其类型或内容。但是,你可以通过其他方法间接实现类似的效果。一种方法是创建一个新的 Blob 对象,然后复制原始 Blob 中的数据,并为新的 Blob 指定新的类型。这可以通过使用 slice() 方法和 new Blob() 构造函数来完成。 下面是一个示例代码,演示...
js对象赋值面试2024最新评论添加评论
下面代码运行会输出什么?        const obj = {            a: 0,        }        obj['1'] = 0;         obj[++obj.a] = obj.a ++;        const values = Object.values(obj);        obj[values[1]] = obj.a; ...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……