vue3-ts-storybook:理解storybook、实践 / 前端组件库

简介: vue3-ts-storybook:理解storybook、实践 / 前端组件库

一、理解 storybook


Storybook是一个开源的工具,可以帮助前端开发者更好地构建、测试和展示组件。

具体来说,Storybook可以做以下几件事情:


1、为每个组件提供一个独立的页面,可以快速展示或调试组件。


2、管理多个组件,按需展示和测试,帮助开发者更好地理解和组织组件库。


3、可以用各种状态(例如不同的props和事件触发)的快照测试组件,保证在不同状态下组件的正确性。


4、提供一些插件(如addon-knobs)可以方便地测试组件的可配置性。


5、可以将组件的使用文档集成在一起,让组件的使用者更好地理解组件的用法和API。


Storybook是一个非常实用的工具,它可以帮助前端开发者更好地管理和测试组件,同时提高开发效率和代码质量。


二、vue3.3 + ts 项目,实践


2.1、安装 storybook


npx sb init


pnpm add --dev @storybook/vue


2cf84005a49faf62a802947d9bf7c949_89363c9b900644178edb5bfa8e03ad69.png


2.2、安装完成后自动打开页面


b0c9576fef2fdb8bde62f42d2a083fb4_44897f9ea89a4fe4a540819d6d509fa1.png

8574a11dfbe055bdc025181f5e6ac338_8f4857a4d7014f6496738975e983ab4d.png


2.3、.storybook 文件夹

在项目根目录下创建了一个名为.storybook的文件夹,并在其中创建一个配置文件main.ts、preview.ts

配置文件的内容可以参考如下:


4bc9121689eba6c199842f35676deea4_54c418aa23c345aeb990f03bf7aaa025.png


2.4、src目录下增加了stories目录

src/stories是存放组件故事(stories)的文件夹路径,.stories.ts是故事文件的后缀名。如果你的文件夹和后缀名有所不同,需要把配置文件中的路径和后缀名修改为你自己的。


52fd34e849fff8b8885287005ad47548_848cb34557494aa3a34b4dd377ef7ad4.png


2.5、故事的属性

每个故事都需要包含一个用于展示故事的title属性和一个展示组件的component属性。  


40d2d4510b31dc4a4442afb934c623d4_7865dafa49234ad09d9b4b987b0bb294.png


2.6、package.json文件,增加storybook启动命令

注意这里设置的端口号,Storybook的默认端口是6006


48e789a4a4aa8e2e577aac9797941226_652cb435345a47649a00a0dd641d5847.png


2.7、启动Storybook

pnpm run storybook


Storybook会自动查找所有的组件故事,并在浏览器中展示出来。


随着使用的深入,你还可以使用Storybook的各种插件和功能(例如插件addon-knobs)帮助你更好地测试组件。


6eff01bc644cf3c2ad3c6fce2ff77414_23a1b75fc08d40c49e8843020971f474.png


启动成功


三、部署


3.1、pnpm run build-storybook 生成静态资源

pnpm run build-storybook


54a83bf3922e262254e1e6c8897ccc42_6f146307e0d646559af86841e3c4bd87.png


3.2、进入目录storybook-static,使用http-server启动服务


b50e4270456fc7c6ae3b5500a607ee10_2a49bacbfc1c485d99e90ec9e7272c03.png


3.3、启动成功,在真实服务器上同理。


229f71ab5dc590e514c26a052987c8c4_386d051800184d0ab3dc0808ce35ca66.png


四、过程记录


4.1、npx sb init 安装 与 pnpm add --dev @storybook/vue 安装 相同吗

不完全相同。


npx是npm的衍生工具,可以临时使用安装的node_modules中的bin工具。

sb init是storybook的初始化命令,初始化storybook。

pnpm add是pnpm工具的添加依赖包命令,--dev表示是开发依赖包,@storybook/vue是storybook的vue框架的入口包


npx sb init 是创建一个完整的 Storybook 项目,它将生成一个包含配置文件、样板文件和一些示例组件的文件结构。


pnpm add --dev @storybook/vue 只是向现有项目中添加 Storybook 依赖项,您需要手动创建配置文件和组件来使用它。


因此,如果您想从头开始构建 Storybook 项目,则应使用 npx sb init ,如果您只是想将 Storybook 添加到现有项目中,则应使用 pnpm add --dev @storybook/vue 。


五、前端类似storybook的方案有哪些


前端vue项目类似storybook的方案有哪些,待补充


六、相关概念


6.1、组件驱动开发(Component-Driven Development)

storybook的幕后公司chormaui在搞组件驱动开发(Component-Driven Development),也就是CDD,这个思想基于原子设计理念与一些现在比较流行的微前端概念


6.2、一切皆可配置

在js文件里边定义一个对象,在组件里边输入js对象,组件输出对应内容,从而形成页面,从而形成项目。


七、参考链接


Install Storybook

基于element-ui二次封装后的组件如何在storybook中展示 - 简书

手摸手教你用 Storybook 改善组件库的开发 - 开发者头条

【storybook】神奇工具storybook!只是用来做组件库?(浅谈CDD组件驱动开发)_业火之理的博客-CSDN博客

在 Vue 项目中使用 Storybook 的 4 个技巧_vue.js_Vue小助理-Vue


相关文章
|
1天前
|
编解码 前端开发 开发者
前端开发中的响应式设计实践
前端开发中的响应式设计实践
|
15天前
|
编解码 前端开发 UED
探索无界:前端开发中的响应式设计深度解析与实践####
【10月更文挑战第29天】 本文深入探讨了响应式设计的核心理念,即通过灵活的布局、媒体查询及弹性图片等技术手段,使网站能够在不同设备上提供一致且优质的用户体验。不同于传统摘要概述,本文将以一次具体项目实践为引,逐步剖析响应式设计的关键技术点,分享实战经验与避坑指南,旨在为前端开发者提供一套实用的响应式设计方法论。 ####
40 4
|
22天前
|
前端开发 JavaScript 开发者
React与Vue:前端框架的巅峰对决与选择策略
【10月更文挑战第23天】React与Vue:前端框架的巅峰对决与选择策略
|
25天前
|
前端开发 JavaScript
除了 jsPDF,还有哪些前端库可以用于生成 PDF?
【10月更文挑战第21天】这些前端库都有各自的特点和优势,你可以根据具体的项目需求、技术栈以及对功能的要求来选择合适的库。不同的库在使用方法、性能表现以及功能支持上可能会有所差异,需要根据实际情况进行评估和选择。
|
22天前
|
前端开发 JavaScript 数据管理
React与Vue:两大前端框架的较量与选择策略
【10月更文挑战第23天】React与Vue:两大前端框架的较量与选择策略
|
24天前
|
前端开发 JavaScript 开发者
揭秘前端高手的秘密武器:深度解析递归组件与动态组件的奥妙,让你代码效率翻倍!
【10月更文挑战第23天】在Web开发中,组件化已成为主流。本文深入探讨了递归组件与动态组件的概念、应用及实现方式。递归组件通过在组件内部调用自身,适用于处理层级结构数据,如菜单和树形控件。动态组件则根据数据变化动态切换组件显示,适用于不同业务逻辑下的组件展示。通过示例,展示了这两种组件的实现方法及其在实际开发中的应用价值。
31 1
|
27天前
|
JavaScript 前端开发 算法
前端优化之超大数组更新:深入分析Vue/React/Svelte的更新渲染策略
本文对比了 Vue、React 和 Svelte 在数组渲染方面的实现方式和优缺点,探讨了它们与直接操作 DOM 的差异及 Web Components 的实现方式。Vue 通过响应式系统自动管理数据变化,React 利用虚拟 DOM 和 `diffing` 算法优化更新,Svelte 通过编译时优化提升性能。文章还介绍了数组更新的优化策略,如使用 `key`、分片渲染、虚拟滚动等,帮助开发者在处理大型数组时提升性能。总结指出,选择合适的框架应根据项目复杂度和性能需求来决定。
|
27天前
|
人工智能 资源调度 数据可视化
【AI应用落地实战】智能文档处理本地部署——可视化文档解析前端TextIn ParseX实践
2024长沙·中国1024程序员节以“智能应用新生态”为主题,吸引了众多技术大咖。合合信息展示了“智能文档处理百宝箱”的三大工具:可视化文档解析前端TextIn ParseX、向量化acge-embedding模型和文档解析测评工具markdown_tester,助力智能文档处理与知识管理。
|
27天前
|
缓存 前端开发 JavaScript
前端serverless探索之组件单独部署时,利用rxjs实现业务状态与vue-react-angular等框架的响应式状态映射
本文深入探讨了如何将RxJS与Vue、React、Angular三大前端框架进行集成,通过抽象出辅助方法`useRx`和`pushPipe`,实现跨框架的状态管理。具体介绍了各框架的响应式机制,展示了如何将RxJS的Observable对象转化为框架的响应式数据,并通过示例代码演示了使用方法。此外,还讨论了全局状态源与WebComponent的部署优化,以及一些实践中的改进点。这些方法不仅简化了异步编程,还提升了代码的可读性和可维护性。
|
1月前
|
前端开发 JavaScript 安全
在vue前端开发中基于refreshToken和axios拦截器实现token的无感刷新
在vue前端开发中基于refreshToken和axios拦截器实现token的无感刷新
93 4
下一篇
无影云桌面