# 如何设计 UI 组件库

合理的划分组件,组件的粒度足够细,单一职责,这样才能最大程度的复用组件。

  1. 不同产品线可能会使用不同主题,所以在设计的时候应考虑到主题变量的事。如:色值、边框高度、大小、字体等等。
  2. 组件虽然是 UI 组件,和业务解耦,但也服务于业务,所以可能需要放弃一部分对 DOM 的控制,将 DOM 结构的决定权移交给开发。比如 Select 组件,可能会有增加下拉选项的业务存在,这里如果设计成为通用组件,必须得把这部分的 DOM 结构交给开发操作。所以设计 UI 组件需要考虑的是底层的交互逻辑以及保证最基本的 DOM 结构,不能过多的暴露 DOM 结构或者过少的暴露。
  3. 组件打包构建问题,应尽量轻便简洁。可以考虑使用 rollup。因为 rollup 在 treeshaking 做的更好,输出更小的文件,所有模块都在一个函数内,执行效率会更高。