Javascript 用babel传输基于类的web组件
我有一个简单的web组件,它在Chrome和Firefox/Edge(带有polyfill)中运行得非常好,但是我希望它在IE11中运行,所以我需要传输类。然而,通过babel运行它会产生在任何浏览器中都无法工作的代码 有没有办法用类语法生成向后兼容的web组件,或者有没有更好的方法来编写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 =
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不需要垫片。