Я понимаю, что это не форум поддержки;Я пытаюсь скрыть это как запрос документации.
Короткий вопрос: каков рекомендуемый способ создания элементов, которые ведут себя точно так же, как и нативные, во всех отношениях?(да, предлагает дополнения, но при условии 100% -ной совместимости с заменой собственных)
Длинная версия:
Мне нужно расширить собственный элемент <button>
.Цель состоит в том, чтобы создать «супер-кнопку», которая может использоваться в качестве 100% -ой замены встроенной кнопки HTML (но, очевидно, предлагает дополнительную функциональность, которую могут использовать потребители или нет).Пожалуйста, обратите внимание, что я оставляю стиль полностью вне уравнения здесь.Итак ...
Способ 1: наследование от кнопки
В Polymer всегда было ясно, что вы не можете наследовать от нативного элемента.Я предполагаю, что это все еще так?
Способ 2: Составить
Следуя этому пути, у меня есть <button>
в теневом доме, и отражают все атрибуты и свойства (это означает, что любое изменение my-button будет отражено в элементе button
в теневом DOM).[EDITED: элемент не должен отражать все события, благодаря ретаргетингу событий теневого DOM]
Для "Пути 2" это будет означать много репликации атрибутов и т. Д. Это может быть сделано справедливолегко с lit-element (поведение для всех атрибутов было бы идентичным, и это применимо к довольно длинному списку их).Но ... прежде чем я доберусь до этого, я вхожу в кроличью нору?
Я могу подумать о многих вещах, которые могут пойти не так ... например, стоит ли мне вообще отражать табиндекс?Будет ли работать атрибут form
, поскольку кнопка будет находиться в теневом корне?И так далее, и так далее.
Итак ... Есть ли простой способ воспроизвести 100% функциональности определенного элемента HTML без необходимости отражать каждый отдельный атрибут?И это сработает?