首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

原生JS实现组件式开发

自定义标签 自定义标签通过扩展一个HTMLElement或HTMLElement的子类来定义一个新的html标签,是通过原生js实现组件。...window.customElements.define("ce-myelement", CopyCode); 复制代码 影子DOM 创建 前面的自定义标签只是定义了自己的一些特别的通用方法,也能插入子元素,已经拥有了组件的方法...,但和复杂的组件相比是完全不够用的,它应该配合另一个特性Shadow DOM一起使用 Shadow DOM能封闭内部,让js和css都无法选择到内部元素(只是无法选择,还是会显示到页面上),里面可以定义...,这样的组件不需要挂载为全局组件就能全局使用,通过vue模板来创建的自定义标签能支持传递对象等复杂数据 在vue中使用自定义标签得先配置loader,否则会有警告提示标签不是vue组件 // vite...使用单文件时会打包更多的代码进去,如果只是使用简单的功能组件更推荐使用原生写法 使用场景 如果需要扩展从外部获取的html并添加比较复杂的功能,自定义标签就是个很好的选择,比如我的博客的文章通过markdown

3.5K52
您找到你想要的搜索结果了吗?
是的
没有找到

原生组件-模块的探索

原生组件-模块的探索 纯原生组件、模块的一次小小的尝试,用到了如下几个新特性: shadown-DOM 对HTML标签结构的一个封装,真正意义上的组件,能保证 shadow-DOM 中的DOM...普通子元素 2. shadow-DOM custom-events 使用各种自定义事件辅助完成组件之间的通讯 ES-module 为浏览器原生支持的模块的一种方案,直接在浏览器里使用import和export...bubbles: true // 启用事件冒泡 }) // 触发自定义事件 }) this.appendChild($text) } } ES-module ES-module是原生模块的一种实现...,他们拿到的都是同一个对象,不用担心浪费网络资源 一个简单的TODO-LIST的实现: 在线demo 源码地址 浏览器原生支持的功能越来越丰富,ES-module、custom-elements...、shadow-DOM以及各种新鲜的玩意儿; web原生组件、模块,期待着普及的那一天,就像现在可以放肆的使用qsa 、fetch,而不用考虑是否需要引入jQuery来帮助做兼容一样(大部分情况下

79720
领券