四十五----组件库设计

2023-12-12 06:28
文章标签 设计 组件 四十五

本文主要是介绍四十五----组件库设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

组件库设计主要考虑几点。
有意义:

  • 命名准确,充分表意。
  • 参数准确,必要的类型检查。
  • 适当的注释
    通用性:
  • 不要耦合特殊的业务功能。
  • 不要包含特定的代码处理逻辑。
    ⽆状态,⽆副作⽤:
  • 状态向上层提取,尽量少⽤内部状态。
  • 解耦IO操作。
    避免过度封装:
  • 合理冗余。
  • 避免过度抽象。
    单一职责:
  • ⼀个组件只完成⼀个功能。
  • 尽量避免不同组件⻅相互依赖、循环依赖。
    易于测试:
    更容易的单元测试覆盖。

组件库设计主要有几大模块。

一、组件库架构选择----仓库管理

Multirepo
⼀个仓库内只⼀个项⽬,以⼀个npm包发布,适⽤于基础组件库。
优点

  • 项⽬简单,调试安装⽐较⽅便。
    缺点
  • 项⽬庞⼤时构建和发布耗时⻓。
  • 组件库使⽤时需整体引⼊,造成⼀定的资源浪费。(可通过es module⽅式解决)
    比如:antdsign

管理工具
git submodule
(git提供的一种管理子仓库的方案
可以批量管理和维护多个git repo
本质上是一个父repo维护了一份各个子repo 的清单
有坑: Git Submodule的坑
替代方案: git subtree

Monorepo
⼀个仓库内管理多个项⽬,以多个npm包⽅式发布,依赖集中管理,npm包版本可以集中管理,也可以 单独管理。通常适⽤于有⼀定关联的组件,但各组件需要⽀持单独的npm包发布和安装。
优点:

  • 共同依赖统⼀管理,版本控制更加容易,依赖管理会变的⽅便。
  • ⽀持组件的单独发布和单独构建。
  • 使⽤时可以单独引⼊。
    缺点:
  • 项⽬搭建复杂度⾼。
    比如react

管理工具:

  • lerna
  • yarn workspace
  • pnpm

二、代码规范

⼀个⾼质量的组件库,eslint和prettier是必须的,能够帮助我们统⼀整个仓库的代码规范。 常⽤的eslint配置:

"eslint:recommended",
"plugin:react/recommended",
"plugin:react-hooks/recommended",
// 如果使⽤ts
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"prettier"

也可以使⽤业界成熟的eslint配置: @umijs/fabric
.eslintrc.js

module.exports = {extends: [require.resolve('@umijs/fabric/dist/eslint')],
};

.stylelintrc.js

module.exports = {extends: [require.resolve('@umijs/fabric/dist/stylelint')],
};

.prettierrc.js

const fabric = require('@umijs/fabric');
module<

这篇关于四十五----组件库设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/483547

相关文章

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

vue2 组件通信

props + emits props:用于接收父组件传递给子组件的数据。可以定义期望从父组件接收的数据结构和类型。‘子组件不可更改该数据’emits:用于定义组件可以向父组件发出的事件。这允许父组件监听子组件的事件并作出响应。(比如数据更新) props检查属性 属性名类型描述默认值typeFunction指定 prop 应该是什么类型,如 String, Number, Boolean,

SprinBoot+Vue网络商城海鲜市场的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者,全网30w+

kubelet组件的启动流程源码分析

概述 摘要: 本文将总结kubelet的作用以及原理,在有一定基础认识的前提下,通过阅读kubelet源码,对kubelet组件的启动流程进行分析。 正文 kubelet的作用 这里对kubelet的作用做一个简单总结。 节点管理 节点的注册 节点状态更新 容器管理(pod生命周期管理) 监听apiserver的容器事件 容器的创建、删除(CRI) 容器的网络的创建与删除

单片机毕业设计基于单片机的智能门禁系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍程序代码部分参考 设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订

Spring的设计⽬标——《Spring技术内幕》

读《Spring技术内幕》第二版,计文柯著。 如果我们要简要地描述Spring的设计⽬标,可以这么说,Spring为开发者提供的是⼀个⼀站式的轻量级应⽤开发框架(平台)。 作为平台,Spring抽象了我们在 许多应⽤开发中遇到的共性问题;同时,作为⼀个轻量级的应⽤开发框架,Spring和传统的J2EE开发相⽐,有其⾃⾝的特点。 通过这些⾃⾝的特点,Spring充分体现了它的设计理念:在