我意识到这不是一个支持论坛;我正试图将其作为文档请求偷偷溜进去。
简短的问题:在所有方面创建与原生元素完全相同的元素的推荐方法是什么?(提供附加功能,是的,但 100% 兼容替代原生产品)
长版:
我需要扩展原生<button>
元素。目标是创建一个“超级按钮”,它可以 100% 替代原生 HTML 按钮(但显然提供了消费者可以使用或不使用的额外功能)。请注意,我在这里完全不考虑样式。所以...
方式一:从Button继承
在 Polymer 中,很明显不能从原生元素继承。我认为情况仍然如此?
方式2:撰写
按照这种方式,我<button>
在 shadow DOM 中有一个,并反映了所有属性和属性(意味着对 my-button 的任何更改都会反映到button
shadow DOM 中的元素上)。[编辑:元素不需要反映所有事件,这要归功于 shadow DOM 对事件的重新定位]
对于“方式 2”,这意味着大量的属性复制等。这可以通过 lit-element 轻松完成(所有属性的行为都是相同的,并且适用于相当长的列表)。但是……在我开始之前,我是不是进入了一个兔子洞?
我可以想到很多可能出错的事情......例如,我是否应该费心反映tabindex?form
由于按钮将位于影子根中,该属性甚至会起作用吗?等等等等。
所以...有没有一种简单的方法可以复制特定 HTML 元素的 100% 功能而不必反映每个单独的属性?它会起作用吗?