描述bug
当你尝试创建一个web组件故事书时,我惊讶地看到lit-html
在其中。虽然我理解lit-html
有助于制作web组件,但我的期望是普通的web组件。即使svelte和其他库可以制作web组件,但这不是我的期望。
web components !== lit-html
我不想在尝试使用web components
时将lit-html
拉入我的项目。我宁愿期望有一个单独的lit
模板来做这样的事情,如果你们的项目已经在使用lit
,那么这就很有意义了。
重现
使用storybook版本6.5创建一个类型为web component
的故事书项目
系统
System:
OS: macOS 12.3.1
CPU: (16) x64 Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz
Binaries:
Node: 16.14.0 - /usr/local/bin/node
npm: 8.3.1 - /usr/local/bin/npm
Browsers:
Chrome: 101.0.4951.64
Firefox: 100.0.1
Safari: 15.4
npmPackages:
@storybook/addon-actions: ^6.5.5 => 6.5.5
@storybook/addon-essentials: ^6.5.5 => 6.5.5
@storybook/addon-links: ^6.5.5 => 6.5.5
@storybook/builder-webpack5: ^6.5.5 => 6.5.5
@storybook/manager-webpack5: ^6.5.5 => 6.5.5
@storybook/web-components: ^6.5.5 => 6.5.5
附加上下文
请使用HTMLElement
作为web component
模板,这是制作web组件的标准方法
5条答案
按热度按时间ego6inou1#
我同意这种观点。
lit-html
不应该成为仅使用浏览器规范编写自定义元素的故事的依赖项。06odsfpq2#
刚看到这个帖子,想加入讨论。
我是微软FAST Web Components的架构负责人。所以,我们也有点惊讶地发现Web组件设置对我们不起作用。我们现在正在为FAST构建自己的自定义解决方案,使用Storybook。
如果我们能集思广益,看看是否可以稍微解耦一些东西,以便让人们更容易以他们想要的方式构建Web组件,那就太好了。我们很乐意分享我们在自己这边所做的工作,以使事情正常运行,并提供反馈以改进整体方法。
b1payxdu3#
对于任何想知道的人,使用lit是当前的默认设置,但不是必需的。这个:
渲染为
是的,"hello"控件是交互式的(更新反映在预览中)
我不知道这有多高效,恐怕它会在某个地方执行
.innerHTML = ...
而不是像lit那样聪明,但它适用于我的用例。vwkv1x7d4#
我也发现,将渲染函数写成这样也能工作:
$x_1a^0b^1x$
fivyi3re5#
翻译结果为:并且在更新时可以检索到之前的元素,从而提高性能,并尽可能使用"更新"动画而不是从头开始重建一切。
$x^{1}a^{0}b^{1}x$