Я хочу создать свой собственный набор 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 заключается в том, что у меня нет основной class
, где я могу определить основные функции.С другой стороны, я должен переписать код в варианте A для функциональности, которую предоставляют собственные элементы ввода и выбора.
Есть ли некоторые аспекты, которые я пропускаю?