美文网首页
Web Component 标准的示例代码:

Web Component 标准的示例代码:

作者: JohnYuCN | 来源:发表于2022-08-27 11:26 被阅读0次

一、标准的组成部分:

  1. Custom elements(自定义元素):一组 JavaScript API,允许您定义 custom elements 及其行为,然后可以在您的用户界面中按照需要使用它们。
  2. Shadow DOM(影子 DOM):一组 JavaScript API,用于将封装的“影子”DOM 树附加到元素(与主文档 DOM 分开呈现)并控制其关联的功能。通过这种方式,您可以保持元素的功能私有,这样它们就可以被脚本化和样式化,而不用担心与文档的其他部分发生冲突。
  3. HTML templates(HTML 模板): <template><slot> 元素使您可以编写不在呈现页面中显示的标记模板。然后它们可以作为自定义元素结构的基础被多次重用。

二、演示部分:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>WebComponent测试练习</title>
</head>
<body>
    <!-- 1.  WebComponent标准:Custom Element -->
    <my-count></my-count>

    <!-- HTML5的网页模板,也可以使用document.document.createElement('template')创建 -->
    <template id="my-count-temp">
        <div>
            <h1>Hello WebComponent</h1>
            <ul>
                <li></li>
            </ul>
        </div>
    </template>
    <script>
        //2. WebComponent标准:CustomElement类型
        class MyCount extends HTMLElement{
            constructor(){
                super()
                var count=0;
                //获取html中的template元素,是一个HTMLTemplateElement类型
                var template=document.querySelector("#my-count-temp")
                console.log(template.content);

                //3. WebComponent标准:ShadowDOM对象
                var shadow=this.attachShadow({mode:'open'})

                //4. H5的新特性,可以从template中直接获取一个DocumentFragment对象
                var orignNode=template.content
            
                // 从template中克隆一个副本
                var cloneNode=document.importNode(orignNode,true)
                // 查询到li
                let li=cloneNode.querySelectorAll("li")[0];
                li.textContent=count
                //游离的节点追加到shadowDOM中
                shadow.appendChild(cloneNode)
                //定时的更新showDOM,将会自动的合并到DOMTree中
                setInterval(()=>{
                    count++
                    li.textContent=count
                },1000)
            }
        }
        //利用全局的CustomElementRegistry对象,注册CustomElement      
        window.customElements.define('my-count',MyCount)
    </script>
</body>
</html>

相关文章

  • Web Component 标准的示例代码:

    一、标准的组成部分: Custom elements(自定义元素):一组 JavaScript API,允许您定义...

  • Lightning Web Component 事件代码示例

    组件的事件 组件通过各种事件来进行通讯。 在 LWC 中,可以通过实现 CustomEvent 接口进行自定义事件...

  • Spring Boot注解 之 @ComponentScan

    本文的示例代码参考ComponentScan 目录 开始 @ComponentScan @Component @C...

  • day3-CSS属性

    1.标准流和浮动 代码示例 2.display属性 代码示例 3.float属性 代码示例 4.清除浮动 代码示例...

  • go test 测试示例

    示例 如果你真想多测试的更加深入,可以写一些 [示例]你将在标准库的文档中找到许多示例。通常代码示例与实际代码所做...

  • 欢迎来借鉴分布式WebSocket解决方案

    单体Webscoket springboot版本: 2.1.1.RELEASE jdk: 1.8 示例代码 Web...

  • Web Component(1)template和shadow

    封装和重用代码已经成为开发者的共识,然而对于HTML而言,大块的重复代码处处都是。Web Component 旨在...

  • React之ReFlux

    一.React 对于一个标准的React Web应用,它的UI将会由无数个组件(component)嵌套组合而成,...

  • web component

    最近因为工作需要开发插件,接触到了web component(原生的功能)。web component可以自定义元...

  • web component

    最近忙着用业余时间搞一个 web 应用开发框架,所以搜集资料,今天给大家分享一个 web component。 s...

网友评论

      本文标题:Web Component 标准的示例代码:

      本文链接:https://www.haomeiwen.com/subject/qynqnrtx.html