使用 Custom Elements 实现步骤条组件及遇到的坑点

Custom Elements 是一项 Web Component 技术,可以让开发者自定义 HTML 元素并在页面中使用。

在本文中,我们将介绍如何使用 Custom Elements 实现一个步骤条组件,并讨论一些遇到的坑点。

实现步骤

1. 定义组件

我们首先定义一个 step-bar 组件,其中包含若干个 step-item。每个 step-item 表示一个步骤,包含一个标题和一个状态,状态可以是 activedoneundone 之一。

2. 编写样式

为了美化步骤条组件,我们需要编写一些样式。这里我们采用了 Flex 布局和 CSS 伪元素等技巧。

3. 初始化组件

我们需要在 connectedCallback 方法中初始化组件。对于 step-bar 组件,我们需要遍历所有子元素并添加 step-item 类名,以便它们受到样式控制。

对于 step-item 组件,我们需要根据属性值设置状态和标题。

4. 使用组件

现在我们可以在 HTML 中使用 step-barstep-item 元素了。

遇到的坑点

在实现步骤条组件时,我们遇到了一些坑点。下面是一些解决方案及注意事项。

1. HTML 内容被移除

在使用组件时,注意不要通过 JS 动态修改组件内部的 HTML 内容,因为这会使浏览器将原来的 HTML 移除并重新插入新的 HTML,导致组件失效。

2. 动态属性修改不会自动触发 attributeChangedCallback

在组件中,我们可以通过 setAttributeproperty 来修改自定义属性的值。但是需要注意的是,当我们通过 property 修改属性值时,不会自动触发 attributeChangedCallback 方法,我们需要额外调用 setAttribute 来触发。

3. 内部元素绑定事件无法传递到外部

当我们将一个 click 事件绑定到组件的内部元素时,点击该元素时,该事件不会传递到组件本身或其父级元素,导致无法触发组件的相关回调。解决方法是使用事件委托,将事件绑定到组件本身或其父级元素。

总结

在本文中,我们使用 Custom Elements 实现了一个步骤条组件,并讨论了一些遇到的坑点。本文的内容可以帮助读者了解 Custom Elements 技术,并指导读者如何开发自定义组件。完整的示例代码可以在我的 GitHub 仓库中找到。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/652bc9fe7d4982a6ebda662b


纠错
反馈