课程章节介绍
同学们,我们来看一下这个示例,这是一个计数器按钮,它完美地演示了自定义元素的生命周期模式。我们一点点把它拆开,让你彻底明白它是怎么工作的。
首先,处理程序这里,我们用箭头函数来定义,比如点击事件的处理函数。为什么要用箭头函数?因为它可以自动保留正确的 `this` 上下文,这样你在函数里面用 `this` 的时候,指向的就是你的自定义元素实例,不会搞乱。
然后看构造函数。在构造函数里,我们设置初始的 HTML,把计数设为 0,显示在按钮上。这是自定义元素被创建时最先执行的。
接下来是 `connectedCallback`。这个生命周期钩子会在元素被插入到 DOM 的时候触发。这时候元素已经在页面里了,所以是添加事件监听器的最佳时机。我们在这里给按钮加上点击事件,这样用户才能交互。
相对应的,`disconnectedCallback` 会在元素从 DOM 中移除时调用。我们一定要在这个回调里移除之前添加的事件监听器,避免内存泄漏。这对于那些可能被反复添加和删除的元素特别关键,不然你的页面会越来越慢。
当用户点击按钮时,点击处理程序会把计数加一,然后直接更新按钮的 `innerHTML`,显示出新的数字。整个过程简洁明了。
接着,我们把这个自定义元素注册到浏览器,给它一个标签名。然后在 Lightning Web Components 里使用时,你需要在模板里用 `lwc:external` 指令来引用它,因为这个元素不是标准的 LWC 组件,而是原生的自定义元素。
最后,渲染出来的 DOM 结构你注意到了吗?宿主组件会把它包裹在一个封闭的阴影根里。也就是说,自定义元素对外是封装的,样式和 DOM 都隔离,这就是 Web Component 的强大之处。
总结一下,通过这个计数器,我们看到了自定义元素从创建、连接到 DOM、更新、再到断开连接的完整生命周期,以及如何在 LWC 中安全地使用它们。记得抓住两点:用箭头函数保证 `this` 正确,在 `connectedCallback` 和 `disconnectedCallback` 里管理好事件监听器。这样你就能驾驭自定义元素啦!
关键词
LWC
Lightning Web Components
Salesforce