用途:为 Storybook 实现提供可扩展、可维护的模式与约定,适用于需要长期维护的组件库。核心原则为组合而非复制、保持一致性、渐进式披露、自文档化结构。
主要能力与组织方式:将 Storybook 资源就近放在组件目录内,例如 component 下含 stories/,其中放 .stories.js、template.js、可选 .docs.mdx 与 .test.js。故事文件需默认导出元数据,包含 title、component、argTypes、args、parameters、tags;控件按 State、Variant、Content、Advanced 分组,并在 .storybook/controls/ 复用共享控件。模板文件导出 Template(args, context) 渲染函数,使用 Lit 的 classMap、styleMap、ifDefined、when 等指令;通过 .bind({}) 派生具体故事,命名简洁,如 Default、With Icon、Loading State、Error Variant。可导入子组件模板实现组合,避免复制标记。视觉回归测试可在 .test.js 中构建测试网格,配合 Chromatic 等工具,并用 !dev、!autodocs 等标签隐藏或排除。可访问性通过参数与 ifDefined 输出 ARIA 属性。文档可在 parameters 中链接设计文件并引用 package.json 与组件状态标签。
必要用法:Vanilla 项目可安装 lit(npm install lit);在 .storybook/main.js 配置路径别名与 stories 映射自动标题。
限制:资料未提供具体收费、价格、平台支持与效果承诺;内容为约定与模式,不保证适用于所有项目,需按项目情况取舍。