| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> 记录一次《Vue 组件库开发》技术分享 -> 正文阅读 |
|
[JavaScript知识库]记录一次《Vue 组件库开发》技术分享 |
前言为了在团队推广落地组件库,让大家参与到组件库的贡献,准备了一场《组件库开发》技术分享,让大家了解组件库的搭建流程,熟悉组件库项目。 为什么造轮子?为什么要造一个组件库轮子?毕竟这需要团队投入大量的人力和精力的一件事情。回答清楚这个问题,才能说服领导和同事们知道做这件事情的意义。 首先分析目前使用组件库的现状,对于
为了解决这个问题,团队在之前也基于
需要什么样的轮子基于上面的问题分析,大概总结一下需要什么样的组件库轮子
为什么不能在原来项目基础上改造,要重复创建一个新的项目?这样不是也增加了项目的维护成本? 因为基于项目的架构、技术选型、文档使用方面的考虑,在原来的基础上改造太复杂,不太可行,所以搭建了一个新的项目,后续会将之前组件库功能迁移到新项目上,稳定后替换项目上旧的组件库,统一只需维护一个组件库。 项目介绍介绍项目中个人认为比较重要的部分,例如架构设计、项目结构、代码规范等 整体架构整体架构分为两部分:源码仓库和 npm 私有库
源码架构设计单包架构优点 通过相对路径实现组件与组件的引用,公共代码之间的引用。 缺点 组件完全耦合在一起,每次改动都需要一起打包发布,不能单独下载 所以,选择使用单包架构的话,为了减少包的体积,需要提供按需加载的能力 多包架构优点
缺点 组件与组件之间物理隔离。对于相互依赖,公共代码,只能通过 NPM 包引用的方式来实现。 目标项目使用的是单包架构,考虑到未来业务组件越来越多,进行多包架构升级,容易维护,参考 技术栈
项目结构
代码规范化
自定义主题换肤组件库基于 element-ui 实现,换肤要考虑两个方面,分别对 element-ui 和 组件库的样式进行换肤 1、Element-ui 组件库换肤 实现方式:加载 element-ui 样式文件,通过正则匹配替换主题颜色 2、组件库换肤 实现方式:利用 CSS 自定义属性 和 SCSS 变量定义主题颜色, 通过 CSS 自定义属性全局CSS自定义属性 在 组件局部CSS自定义属性 为了避免全局覆盖影响,参考 样式资源隔离抽离组件 开发流程组件库贡献流程详细步骤 1、fork 项目仓库:https://github.com/JefferyXZF/douluo-ui 2、克隆项目仓库到本地,安装依赖 3、develop 是开发分支,基于该分支创建功能分支,例如 feat-button 4、阅读开发文档,熟悉组件开发规范 5、根据 UI 规范设计和实现组件功能 6、组件测试,编写测试用例和组件说明文档 7、使用 8、发起 PR 合并前,合并 devleop 分支避免冲突,通知相关人 code review 合并代码 9、更新版本号和日志,打包发布更新 npm,更新项目组件库依赖包 组件开发组件设计原则组件库的开发不同于一般的业务组件开发,考虑到组件的拓展性和维护性,需要遵循一些设计原则 单一职责:根据功能拆分组件,且组件粒度不宜过细,前提是复用 组合性:将多个单一职责的小组件组合成为一个职责更大、功能单一的组件,比如时间选择组件是由选择组件、输入组件等组合而成; 封装性:隐藏内部细节和实现意义,并通过props来控制行为和输出(单向数据流) 可测试:一个组件不易于测试,很大可能是组件设计存在问题 组件设计五要素在实现组件前对组件进行设计,根据功能进行分析,考虑以下几个要素
以 button 组件为例 组件实现
未来计划项目升级
功能迭代
技术升级
|
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/11 17:40:04- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |