Web API Properties — Element Interface

DEX475 - Fields, Properties, and Attributes

📄 第 121 页 🎬 视频课程

课程章节介绍

同学们,今天我们来聊聊一个很有趣的话题——LWC组件是怎么像原生HTML元素一样在页面上表现的。 你看,当你使用Lightning Web Components时,你的组件其实反映了一个很重要的接口——标准Element接口。什么意思呢?简单说,就是你的LWC组件可以假装自己就是一个普通的HTML元素,这样你就能像操作div、span那样去操作它了。 它为咱们提供了一组关键的功能。比如: - 你想在组件里遍历子元素?有,children,、,firstElementChild,、,lastElementChild,这些属性,跟DOM一样方便。 - 操作CSS类名?有,classList,和,className,,加类、删类完全没问题。 - 想动态读取或修改属性呢?,getAttribute,、,setAttribute,、,hasAttribute,、,removeAttribute,都齐活,而且它们还支持命名空间,比如可以处理带“xmlns”或“xlink”前缀的属性。 - 查询子元素也有,querySelector,、,querySelectorAll,,以及经典的,getElementsByClassName,、,getElementsByTagName,方法。 - 获取元素的大小位置信息,可以用,getBoundingClientRect,。 - 如果你需要访问影子DOM的根节点,还可以用,shadowRoot,属性。 - 另外,还有一个,slot,属性,可以拿到组件内部的slot元素,插槽内容就是这样控制的。 不过,这里得提醒大家注意一点:如果你在组织里启用了Lightning Web Security(简称LWS),有些方法的行为会稍有变化。比如,setAttribute,和,shadowRoot,的getter会被LWS的安全沙箱“扭曲”一下。别担心,它这么做是为了保证安全,同时尽量保持兼容性,只是底层实现稍微修改了一下,一般使用感受还是差不多的。 所以,正是这些接口,让你的LWC组件在页面上表现得像个地地道道的原生元素,又安全又灵活。明白了吗? 今天就讲到这里,下课!

关键词

LWC Lightning Web Components Salesforce