Jim*_*m C 0 web-component polymer html-templates native-web-component lit-html
我在一家拥有大型 webcomponents 目录的大公司中使用 Polymer 1 和 2 工作了大约一年,我相信 webcomponents 非常有用。我知道像https://adamsilver.io/articles/the-problem-with-web-components/这样的“缺点想法” 。
现在我正在深入研究如何有效地使用 vanilla webcomponents。我刚开始的前提是使用 vanilla web-components 将有助于与 webcomponents 改进保持一致(我无法为这样的想法辩护 - 我现在只是假设这一点)。然后我试图创建一个堆栈来使用 vanilla webcomponents。
在寻找推荐的测试方法时,我访问了https://open-wc.org/testing,我认为它的目的是在不添加特定框架的情况下促进良好实践(来自其网站:“Open Web Components is a community-effort,独立于任何框架或公司”)。这正是我正在寻找的:一种良好的实践和众所周知的推荐,类似于我们对来自 micorservice.io 的微服务(这只是一个类比)。
尝试使用我在 package.json 中得到的脚手架:
"dependencies": {
"lit-html": "^1.0.0",
"lit-element": "^2.0.1"
}
Run Code Online (Sandbox Code Playgroud)
所以,我的主要问题是:为什么要为 webcomponent 使用 lit-html?
围绕我的主要问题的有用疑问,据我所知,lit-html 是由谷歌和聚合物团队赞助的框架。这不是以某种方式迫使我使用 polifylls 在所有浏览器中运行吗?假设我不关心浏览器不符合 webcomponents,为什么我需要一个框架?
小智 6
open-wc 的维护者在这里:)
我们推荐 lit-html/element 的原因是因为它们是非常小的库,可以帮助您编写 Web 组件,并且不会将您锁定在框架中。实际上,LitElement 只是扩展了 HTMLElement,这使得它可以与其他 Web 组件甚至框架进行互操作。LitElement 还减少了您必须为普通 Web 组件编写的样板。然而,我们并没有与之结婚,而且我个人非常喜欢香草组件解决方案。此外,我们的大多数(如果不是全部)工具都应该与 Web 组件兼容。
关于 polyfills;LitElement 将尝试使用现代标准是可能的(例如:可构造的样式表),如果不可用则使用回退。加载 web 组件 polyfill 取决于开发人员 - 而不是 litelement。如果您使用我们的 rollup 或 webpack 构建配置,您可以选择加载 polyfill。
希望能解答您的疑问,欢迎交流!