如何从0开始搭建Vue组件库

作者:京东零售陈艳春

前言:

组件设计是通过对功能及视觉表达中元素的拆解、归纳、重组,并基于可被复用的目的,形成规范化的组件,通过多维度组合来构建整个设计方案,將这些组件整理在一起,便形成组件库。本文我们主要讲述基于VantCLI的自建组件库。VantCLI是一个基于Vite实现的Vue组件库构建工具,通过VantCLI可以快速搭建一套功能完备的Vue组件库。

建立组件库的意义

首先组件库可以给我们降本提效,其次可以保持视觉风格统一以及交互一致,可以帮助我们快速构建使用场景,便于多个项目后续迭代升级。

视觉风格统一以及交互的一致性,可以减少用户学习成本培养用户习惯,让产品拥有良好的用户体验。比如一个四级地址的选择组件,在整个产品中应该就一种交互方式,如果一会是滚动选择,一会是点击选择,会让用户操作起来比较烦躁,统一交互可以减少用户学习成本。

新产品上线后,还需要不断的去完善,在迭代过程中可能会新增其他功能,这时候我们就可以只修改组件库一套代码,所有不同项目相同组件就可以达到了迭代升级的效果。

如何创建组件库

一、梳理组件清单

首先梳理出项目中样式相同的模块,和产品讨论未来会有哪些规划,现有的组件是否能够满足需求,是否需要补充设计方案,清单整理完毕后,将每一个组件建成一个独立任务,像日常需求那样,方便随时更新使用。

二、场景整合

把自己变成产品的深度用户,把现有线上产品完整体验一遍,绘制用户行为路径,并和需求方沟通了解后续计划,将组件的所有的当前/潜在应用场景总结出来,尽可能不遗漏场景。

三、组件库框架选型

看了开源的Vue组件库,总结了一些前端目前流行的趋势,列出来多个版本和框架的,本文只讨论Vue版本。

1.element-plus-经典中的经典,全面支持Vue

2.tdesign-vue-next-鹅厂优质UI组件,配套工具完满,设计工整,文档清晰

.arco-design-vue-字节跳动开源UI组件库,大厂逻辑,设计文档完美

4.ant-design-vue-蚂蚁前端UI库,面向企业级中后台

5.naive-ui-宝藏VueUI库,VueUI新星,从Vue起步

6.vant-有赞团队开源移动UI组件库,全面支持Vue

7.nutui-京东出品,移动端友好,面向电商业务场景

8.vuetify-老牌VueUI,基于谷歌的MaterialDesign样式开发

9.varlet-Varlet是一个基于Vue开发的Material风格移动端组件库,全面拥抱Vue生态,由社区建立起来的组件库团队进行维护。

四、组件库搭建

我们以VantCLI为例来详细剖析具体搭建过程:

(1)首先确保本地node版本^12.1.0

^14.15.0

=16.0.0

(2)执行以下命令可以快速创建一个基于VantCLI的项目

yarncreatevant-cli-app

()手动安装

#通过npmnpmi

vant/cli-D#通过yarnyarnadd

vant/cli-D#通过pnpmpnpmadd

vant/cli-D

(4)手动配置

{"scripts":{"dev":"vant-clidev","test":"vant-clitest","lint":"vant-clilint","build":"vant-clibuild","prepare":"huskyinstall","release":"vant-clirelease","build-site":"vant-clibuild-site"},"nano-staged":{"*.md":"prettier--write","*.{ts,tsx,js,vue,less,scss}":"prettier--write","*.{ts,tsx,js,vue}":"eslint--fix"},"eslintConfig":{"root":true,"extends":["

vant"]},"prettier":{"singleQuote":true},"browserslist":["Chrome=51","iOS=10"]}

(5)本地启动

npmrundev启动项目,页面如下:

注:介绍、快速上手、定制主题、编码规范、开发指南是根据自己组内的规范编写。

(6)如何开发组件库

目录结构

?仓库的组件代码位于src下,每个组件一个文件夹

?docs目录下是文档网站的代码,本地开发时可以在目录下运行npmrundev开启文档网站

项目主要目录如下:

m-tetris├─build#构建├─docs#文档├─es#打包├─lib#打包├─site#静态站点资源├─src#组件├─test#单测└─static#图片等资源

添加新组件

添加新组件时,请按照下面的目录结构组织文件,并在vant.config.js中配置组件名称。

src└─button├─demo#示例代码├─test#单元测试├─index.vue#组件入口├─index.less#组件样式└─README.md#组件文档说明

本地测试

#打包,生成libes文件夹npmrunbuild#生成压缩包npmpack#在项目中安装测试包npminstall压缩包的绝对路径(例如:/Users/用户名/work/XXX/XXX.0.tgz)五、如何发布到公司npm私服或者npm


转载请注明:http://www.aierlanlan.com/rzgz/8280.html