首页 > 其他分享 >使用Web Component自定义组件

使用Web Component自定义组件

时间:2022-11-07 13:24:54浏览次数:81  
标签:Web 自定义 web color component Component template 组件 255

<!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>Document</title>
</head>

<body>

  <my-btn><span slot="text">test1</span></my-btn>
  <my-btn>
    <span slot="text">test2</span>
  </my-btn>


  <script>
    class myBtn extends HTMLElement {
      constructor() {
        super()
        let template = document.createElement('template')
        template.innerHTML = `
          <style>
              button {
                display: inline-block;
                padding: 0.5rem 1rem;
                background-color: rgb(0, 153, 255);
                color: rgb(255, 255, 255);
                border: 0;
                border-radius: 0.3rem;
                cursor: pointer;
                transition: all .5 linear;
              }

              button:active {
                transform: scale(0.9);
                background-color: rgba(0, 153, 255, 0.8);
              }
          </style>
          <button>
            <slot name="text">text</slot>
          </button>
        `
        this._shadowRoot = this.attachShadow({ mode: 'closed' });
        this._shadowRoot.appendChild(template.content.cloneNode(true));
      }
    }
    customElements.define('my-btn', myBtn);


    /*
    常用的生命周期方法如下:

    connectedCallback

    当 web component 被添加到 DOM 时,会调用这个回调函数,这个函数只会被执行一次。可以在这个回调函数中完成一些初始化操作,比如更加参数设置组件的样式。

    disconnectedCallback

    当 web component 从文档 DOM 中删除时执行。

    adoptedCallback

    当 web component 被移动到新文档时执行。

    attributeChangedCallback

    被监听的属性发生变化时执行。
    */

  </script>
</body>

</html>

标签:Web,自定义,web,color,component,Component,template,组件,255
From: https://www.cnblogs.com/fsgljk/p/16865592.html

相关文章

  • web1.0 web2.0 web3.0
    一 Web1.0的主要特点在于用户通过浏览器获取信息,例如:京东163新闻模块二Web2.0则更注重用户的交互作用,用户既是网站内容的消费者(浏览者),也是......
  • Web前端技术简介
    Web前端就是1美工photoshop、css2界面友好(比如京东=,你购物以后的关联产品是放在左边还是右边呢?)3强大的脚本功能支持(QQ空间,上传照片,重新部署......
  • 什么是webos
    基于浏览器的页面操作系统,操作系统都是运行在服务器上,比如web.qq.com就是典型的webos,优点:你在任何一台电脑上打开你的webos都是一样的,就像登录远......
  • WebRTC-web实时通讯(转)
    WebRTC(WebReal-Time-Communication)不需要插件便能支持音频和视频通信。主页:http://www.webrtc.org胖客户端,其实瘦客户端尽管有很多的优点,但......
  • DataGear 自定义数据可视化图表
    DataGear内置了很多常用的图表(折线图、柱状图、饼图、散点图、雷达图、地图等等),能满足大部分数据可视化需求,当内置图表无法满足时,则可以通过自定义图表或插件的方式,实现特......
  • 项目运行npm run dev报错npm ERR! [email protected] dev: `webpack-dev-server --inline --
    目录一、问题描述二、问题原因三、解决方法1.查看vue版本是2.9.62.卸载3.安装4.安装5.正常启动。一、问题描述vue项目运行dev,之前没有问题,但是今天直接报错如下npmER......
  • Ant Design Vue自定义文件上传设置progress进度条
    前言在使用AntDesignVue的upload文件上传功能的时候,我们为了规范前端代码,所以会封装接口请求到对应的ts或js文件并引用,这个时候我们会更多的使用自定义文件上传的功......
  • 23种设计模式之自定义Spring框架(五)
    7,自定义Spring框架7.1spring使用回顾自定义spring框架前,先回顾一下spring框架的使用,从而分析spring的核心,并对核心功能进行模拟。数据访问层。定义UserDao接口及其子......
  • 用Rust实现一个多线程的web server
    在本文之前,我们用Rust实现一个单线程的webserver的例子,但是单线程的webserver不够高效,所以本篇文章就来实现一个多线程的例子。单线程webserver存在的问题请求只能串行处......
  • 用Rust创建一个简单的webserver
    目的本节的例子教大家用Rust语言创建一个简单的webserver程序。webserver中涉及到的两个主要协议是超文本传输协议(HypertextTransferProtocol,HTTP)和传输控制协议(Tran......