什么是组件?具有标准接口和某种功能且可复用的标准零部件。
有了组件的使用,我们在进行软件开发的时候,可以像搭积木一样,而不是什么东西都要自己写、自己造,我们有了可以重复使用的“零部件”
在前端开发中,我们就有许许多多的UI组件,“按钮”、“输入框”、“下拉选择”都是组件,组件和组件组合就变成了一个更复杂的组件。
现如今,对于开发人员来说,市面上有着非常多的组件库供我们进行选择:一、Bootstrap二、iconfont图标库三、常用组件库:Element-ui、Vant-ui、Ant Design四、Swiper(专业级轮播图/旋转木马工具) 五、Moment.js(专业级时间工具) 六、Animate.css七、Apache ECharts
如何使用组件库?——以arcodesign组件库为例子
首先,我们需要进行引入:npm i @arco-design/web-react
import React from ""react"" ;
import ReactDOMfrom "react-dom" ;
import { Button } from "@arco-design/web-react" ;
import "@arco-design/web-react/dist/css/arco.css";
或者在安装的时候按需加载插件
在webpack的babel配置中进行插件的引入
自定义组件:
搭建业务组件库–关键点:架构设计、技术方案、对外文档。就如同盖房子一样,我们需要打地基、盖房子、装修,一步一步来
架构设计:单包架构、多包架构
技术方案:开发环境、样式方案、产物构建、质量保障、组件开发
对外文档:Demo展示、组件API生成、版本日志
单包架构
一个代码仓库里所有组件打包成一个整体,发布出去一个npm包
优点:
√公共代码易复用
√展示更聚合,便于维护
√引入一个包即可使用全部组件
缺点:1、修改一个组件需要更新整个库 2、需要考虑按需加载
多包架构
一个代码仓库包含多个组件代码,会发布出去多个npm包。
优点:
√单独发包,升级灵活。
√在同一仓库下,便于代码管理
√使用者无需考虑按需加载
缺点:
1、组件间相互依赖时,需要通过npm包引入 2、组合使用时需要安装每一个用到的npm包
什么是好的组件:高内聚、低耦合、通用性、易拓展
职责清晰,高可维护性
对外提供简单稳定的接口,对内关注内部逻辑的实现。
组件和组件之间能简单的配合实现定制的功能。
比如: Popver直接嵌套Input 即可实现:在输入框聚焦时显示气泡提示内容
基础组件适用广泛的业务场景
适用于不同行业的业务平台
业务组件适用于针对性平台
具备显著的业务属性,一般基于基础组件开发。
比如︰通过关键字调接搜索Lark 群聊
项目组织:语义化命名、包名和组件名最后一致、单独维护类型文件
组件设计:组件属性定义·类名前缀统一、避免行内样式、避免在JS中耦合css、注意样式的按需加载