博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义标签的编码
阅读量:6760 次
发布时间:2019-06-26

本文共 1476 字,大约阅读时间需要 4 分钟。

题记

As a web freshman, we having to make do with a long, nested batch of elements that together provide a custom page feature. however, some of frame often to ues custom elements and looks so cool or 逼格(how translate it ??),so, questing begging, how could we use the custom element and achieve it ??

MDN Official Documents just having some of unclear, so let's Simple and clear it!!


核心函数 customElements.define

在MDN官方文档中,如果你想要使用自定义标签,可以使用customElement类中define方法(IE浏览器默默离开...),

使用:customElements.define('myselfTagName', myselfClass, extendsObj);
参数:

myselfTagName: 自定义标签的名字
myselfClass: 自定义标签的类对象,(主要功能在这里实现,一般在自定义标签绑定变量、事件、指令或者是渲染条件)
extendsObj: 内置并继承的元素(包裹着自定义标签的对象,一般不使用,毕竟谁会闲的无聊把基本标签封装成自定义标签然后填充一堆属性,语义化也说不通啊)

核心函数 attachShadow

官方文档对于解释很模糊,简单的说就是DOM的'一体双魂',拥有同样的函数和方法,但是Shadow DOM比被附加DOM更多的功能,前者具有独自的作用域,并且与外界DOM分隔。(这个作用就是shadow DOM的核心功能,它可以使你编写的DOM与css与其他区域互不影响,相当于vue中css样式<style scoped> </style>的作用);

shadow DOM弥补了customElements缺少隔离作用域(DOM和css作用域)的缺陷。

shadom DOM Root的创建方法: this.attachShadow({mode: 'open'});

this: shadom DOM对象
mode: 开启js调用shadow DOM

代码示范

coding.... 莫道征途路漫漫      
Pop-up info box — web components

Pop-up info widget - web components

思考

自定义标签的使用减少了我们频繁编写一堆冗余、深层嵌套的代码,提高了速率。然而,如果我们看页面源码会发现customElements.define不会消除自定义标签,自定义标签如果绑定了大量的数据、事件、敏感信息,页面上又完全显示出来,这就增加前端页面的不安全性。如何保证开发者即使用自定义标签又不会编译自定义标签从而导致DOM的过度挂载和数据的泄漏(总不能remove自定义标签吧,频繁操作DOM是不建议的),值得思考...

转载地址:http://habeo.baihongyu.com/

你可能感兴趣的文章
XINS 3.0 正式版发布,远程 API 调用规范
查看>>
sqlserver 2005 64bit express
查看>>
(转)Oracle中For和while及一些应用
查看>>
jQuery基础及选择器
查看>>
DragonFly BSD 3.2 发布
查看>>
Mozilla 发布 Popcorn Maker,在线创作视频
查看>>
C#中为什么需要装箱拆箱操作?
查看>>
PHP类中一般方法与静态方法的疑问
查看>>
[转]PHP花括号变量
查看>>
【Opencv学习】摄像头采集、录像、截图小工具
查看>>
Fedora16安装中文语言包和中文输入法
查看>>
Windows 8实用窍门系列:14.windows 8中粘贴板(剪切板)的使用
查看>>
长连接API小心“窜包”问题
查看>>
开发者基础知识游戏,共10关,欢迎挑战
查看>>
ASP.NET中 RadioButtonList(单选按钮组)的使用
查看>>
SESSION 丢失
查看>>
DES可逆加解密
查看>>
图解Undo原理
查看>>
Kinect for Windows SDK V1.7 发布
查看>>
JAVA中的参数按值传递与按引用传递
查看>>