组件库的使用与自定义组件 | 青训营笔记

158 阅读2分钟

组件即封装好的可复用的程序“零部件”

社区组件库 Pasted Graphic 4.png

组件的特性:一致性、效率、协同

当使用组件库中的一个组件时,如果不做特殊说明,js文件是将整个组件库都加载了,为了达到优化的目的,需要按需加载使用组件【也可以手动在每个项目文件里按照需要引入单独的组件】

安装按需加载插件 babel-plugin-import

yarn add babel-plugin-import -D

Pasted Graphic 6.png

实现局部应用暗色模式的核心思路:本质上是控制暗色颜色变量的挂载位置,提高我们所需要的颜色变量的优先级

LTR表示从左到右的阅读习惯

RTL表示从右到左的阅读习惯(中东有的国家是这种阅读习惯,因此在页面布局、组件细节上要设置成从右到左的阅读习惯)

搭建业务组件库(以Arco-design为例)

架构设计:考虑使用单包架构还是多包架构

单包架构:一个代码仓库里所有组件打包成一个整体,发布出去一个npm包【优点:公共代码易复用;展示更聚合,便于维护;引入一个包即可使用全部组件。缺点:修改一个组件需要更新整个库;需要考虑按需加载】

多包架构:一个代码仓库包含多个组件代码,会发布出去多个npm包【优点:单独发包,升级灵活;在同一仓库下,便于代码管理;使用者无需考虑按需加载。缺点:组件间相互依赖时,需要通过npm包引入;组合使用时需要安装每一个用到的npm包】

技术方案:从开发环境、样式方案、产物构建、质量保障四个方面考虑

开发环境:

打包速度

实时预览,如storybook

样式方案:

样式方案:Less/Sass,CSS in JS,CSS等

组件库换肤,样式定制等能力

产物构建:

构建工具webpack,rollup,vite,gulp等

产物格式:cjs,umd,es

质量保障:

测试工具:jest,karma,mocha,enzyme,react-testing-library等

测试类型:单元测试,快照测试,截屏测试,e2e测试等

对外文档:文档部署、组件API提取、版本日志生成

文档部署:

Demo展示:Storybook,umijs等

静态内容:markdown

组件API提取:

手写

自动提取:ts-document

版本日志生成:

手写

自动提取:从PR提交记录自动提取@arco-design/changelog