我想用 Web 组件创建自己的一组 HTML 元素,它们都包含一些基本功能。我想从输入开始,似乎有两种可能性:继承自HTMLElement
或从HTMLInputElement
.
选项 A:
class BasicCustomHTMLElement extends HTMLElement {
//basic functionality
}
class CustomInput extends BasicCustomHTMLElement {
let shadow = this.attachShadow({
mode: 'open'
});
let textbox = document.createElement("input");
shadow.appendChild(textbox);
}
选项 B
class CustomInput extends HTMLInputElement {
}
我对选项 B 的问题是,我没有 main class
,我可以在其中定义基本功能。另一方面,我必须为原生输入和选择元素提供的功能重写选项 A 中的代码。
我是否忽略了某些方面?