Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用babel传输基于类的web组件_Javascript_Babeljs_Web Component_Custom Element - Fatal编程技术网

Javascript 用babel传输基于类的web组件

Javascript 用babel传输基于类的web组件,javascript,babeljs,web-component,custom-element,Javascript,Babeljs,Web Component,Custom Element,我有一个简单的web组件,它在Chrome和Firefox/Edge(带有polyfill)中运行得非常好,但是我希望它在IE11中运行,所以我需要传输类。然而,通过babel运行它会产生在任何浏览器中都无法工作的代码 有没有办法用类语法生成向后兼容的web组件,或者有没有更好的方法来编写web组件以实现最大的兼容性 示例代码- class TestElement extends HTMLElement { connectedCallback(){ this.innerHTML =

我有一个简单的web组件,它在Chrome和Firefox/Edge(带有polyfill)中运行得非常好,但是我希望它在IE11中运行,所以我需要传输类。然而,通过babel运行它会产生在任何浏览器中都无法工作的代码

有没有办法用类语法生成向后兼容的web组件,或者有没有更好的方法来编写web组件以实现最大的兼容性

示例代码-

class TestElement extends HTMLElement {
  connectedCallback(){
    this.innerHTML = "<div>Testing</div>"
  }
}

customElements.define('test-element', TestElement)
class TestElement扩展了HtmleElement{
connectedCallback(){
this.innerHTML=“测试”
}
}
自定义元素。定义('test-element',TestElement)
使用传输代码时显示错误消息-

未捕获类型错误:未能构造“HtmleElement”:请使用“new”运算符,此DOM对象构造函数不能作为函数调用


一种解决方案是使用此polyfill提供的本机垫片


但它并不完美,希望找到更干净的解决方案。

要使用Babel编译自定义元素类,可以从Github使用它


它将使用
Reflect.construct()
而不是
new
,这在
HTMLElement
对象中是不允许的。

这可能是一个副本,它是的副本吗?如果是,那么下次尝试搜索Transfile或babel Extend这听起来像是潜在问题,我感兴趣的是人们如何处理与web组件相关的问题,或者两者不能一起工作?解决方法?谢谢,但在运行了这段传输代码后,给出了“TypeError:非法构造函数”,我从来没有传输过,我只是想给你们找一些例子。出于同样的原因,我也没有将关闭锤作为复制品。谢谢,看起来这实际上是一个完美的作品复制品——在使用其他解决方案时遇到了很多麻烦。顺便说一句,他们说“我们还在对这种方法进行一些未来的改进,以改进实现并自动检测是否需要。”。有趣的是,firefox不需要垫片。