如何构建Web组件自定义元素以同时使用这两个规范

问题描述 投票:8回答:2

我需要构建一个组件,该组件应该同时使用两个规格,custom elements spec v0,该规格具有deprecatedcustom elements spec v1,这是最新的稳定版本。

如果我使用custom elements v0规范构建组件,则某些应用程序将面临问题,因为它们使用的是polymer 2及更高版本,而polymer 1应用程序也会遇到同样的问题,而这些问题不适用于custom elements v1规范。

我无法控制应用程序来更改Polyfills,>,某些应用程序必须使用支持旧规范的Polyfill,而某些应用程序使用新的Polyfill。

我正在寻找一个可靠的解决方案,以结合这两个规范以在所有应用程序中运行我的自定义元素,而不管polyfills版本如何。我可以在组件中添加任何polyfill或代码段,以便它们可以在任何地方运行,但在我的研究中没有找到支持这两种规范的库或polyfill。

我正计划编写一个适配器,该适配器可以结合下面提到的用于映射的回调的两个规范,对此思想的输入将不胜感激。

connectedCallback(){
    this.attachedCallback();
}

我尝试使用stenciljs,但它只能与最新版本的自定义元素规范一起使用。我尚未找到任何方法来对其进行调整以使其与以前的规范兼容。

请针对上述情况提出一些可行的选择和可行的解决方案。

我需要构建一个组件,该组件应同时使用两个规格,已弃用的自定义元素规格v0和最新的稳定版本的自定义元素规格v1。如果我使用...

javascript html web-component polyfills custom-element
2个回答
0
投票

基本上,您的组件具有某些依赖关系,这些依赖关系在polyfill中直接或间接定义。如果我们将这些依赖关系视为依赖关系图的节点,则存在图不同的问题。两个图中都可能存在一个节点,但是它们的行为有所不同(相同function的较旧和较新的实现),并且图中存在的某些节点在另一个图中也可能丢失。您当然可以放入自己的一些polyfill或类似的东西,但是随后您需要维护polyfill,这可能没有什么用。


0
投票

我怀疑您知道Custom Elements v0 is deprecated at M70, and will be removed in M80, by February, 2020.

© www.soinside.com 2019 - 2024. All rights reserved.