同一页面中能否混用不同版本Stencil构建的Web Components?
不同版本Stencil JS构建的Web Components可以在同一页面混合使用
我在实际生产项目中已经验证过这个结论是成立的。
Stencil最终打包输出的是独立的原生Web Components,每个组件库的运行时代码都会被封装在自身的作用域内,既不会暴露全局变量,也不会和其他版本Stencil构建的组件产生运行时冲突。
我之前负责的项目曾同时接入过两套组件库:一套是基于Stencil v2构建的内部业务组件库,另一套是基于Stencil v4构建的第三方通用UI组件库,两者在同一页面加载、同时调用的全流程中,没有出现任何样式异常、功能冲突,组件的生命周期运行也完全正常。
官方FAQ的相关说明也佐证了这一特性:
Stencil运行时有哪些依赖?
无任何依赖。Stencil 生成的代码不依赖 Stencil 本身,而是生成高度优化、无框架、可独立运行的代码,能够在浏览器中原生运行。
唯一需要注意的冲突场景和Stencil版本无关:如果不同组件库定义了同名的自定义HTML标签名,会触发Web Components原生规范的命名冲突,只要保证所有自定义元素的tag名称全局唯一,就不会出现兼容问题。
内容的提问来源于stack exchange,提问作者Philipp Gfeller
相关产品推荐
相关产品推荐

