如何开发前端组件库

news/2024/7/24 1:39:39 标签: javascript, 前端框架, 组件库, UI框架, ui

在讲如何做之前先说两个不大、却有点重要的问题~。 ps(文章最后有项目案例)

1. 为什么要自己开发一个前端组件库

或者说,自己开发一个前端组件库有什么好处?

我认为前端组件库是我们前端练习写一个library的最简单最有效的方式 (当然在面试中也算一个不错的亮点)

因为开发组件库的过程不仅练习了框架(vue/react)的使用,还集合了包括单元测试、UI输出、类型检查、打包构建等从头到尾一整套的知识。其中每一块里面又包含很多内容,如果专门拿出来一个学习,不仅不系统,而且容易忘记,而前端组件库就很好的把这些知识集合了起来,不需要花费很长时间却能学习很多知识。可谓事半功倍。

2. 自己开发前端组件库要达到什么效果才算合格?

难道要像Antd那样?

我们应该都用过 element 或者 antd design等一些前端组件库,可能有些同学看过他们的源码,是不是感觉复杂?难道自己也要开发成这种吗?如果是这样的话,估计90%同学都要放弃。当然没必要开发成这样。或者做出来的项目只有这些:
在这里插入图片描述

我们都知道任何复杂的项目都是一点点堆积起来、沉淀下来的,所以开发组件库最重要的就是把基础的功能做出来,让项目做到麻雀虽小五脏俱全。哪怕只写了一个Button组件,但是最终的结果是可以让别人下载安装并且成功导入到项目中使用,那这个项目就可以说是完整且有效的。

总结下来就是:

  1. 开发前端组件库能让自己有更完整的技术栈,而不只是 “vue工程师”。
  2. 项目的最终目标是小而全,而不是多而烦,做到事半功倍。

现在我们应该有信心了,不必再觉得开发一个前端组件库这么遥不可及了,我又不是为了开发Element对吧~

如何开发

下面简单讲一个开发的步骤和要点,最最重要的是理清脉络和亲自实践。

  • 开始编码之前的准备
    • 确定框架类型:React or Vue?我选的React,所以下面就用React当作例子
    • 项目创建方式:
      • 这个倒是因人而异,如果并不想把webpack的学习加入到此次计划中,那么就使用脚手架工具就好了。假如自己从0搭建,如果对webpack不是很熟悉,那么可能还没开始就放弃了,所以建议使用脚手架,如果以后想学习工程化,可以专门拿项目专门来练习webpack。所以建议脚手架创建项目。
    • 类型检查:
      • 建议项目中使用typescript,ts会让代码的可维护性变的很高,而且可以减少bug
    • ESlint和 prettier:
      • 这两个简直绝配,eslint只负责语法检查,而prettier负责代码风格检查,各司其职。
      • 使用教程可以参照这里。
  • 开发中用到的知识以及解决了哪些问题
    • 样式选型sass,可以定义css变量,具有mixin和函数的功能

    • 单元测试react-testing-library,react官方推荐的测试框架,组件库非常适合用单元测试,因为每个组件划分明确,跟其他组件互不干扰,而且解决了每添加一个属性都要手动测试其功能。

    • 本地调试storybook痛点:因为每一个组件都有很多属性,如果我们自己写组件,把每个样式都调试出来会很繁琐,而storybook就解决了本地开发过程中的调试问题。可以在页面中随便选属性。
      在这里插入图片描述

    • 打包构建:

      • 打包css,利用node-sass命令行
      • 打包js,要按照两种规范都打包出来:CommonjsEsmodule规范,通过tsconfig的配置可以实现。

总结:方向包括上面这些,还有一些细节会在项目中遇到再解决,这样印象会更深刻,

下面附上一个例子,一个很迷你的组件库,但是自己写出来还是意义重大,可以照猫画虎,只要能完整写出来,并理解其中的思路,对自己来说就会进步很大。项目案例,如果自己也想做,建议拷贝到本地并且也亲自安装到一个项目中,边看边学边练,有问题记下来,可以在评论一起讨论。


http://www.niftyadmin.cn/n/71589.html

相关文章

一手教你如何搭建Hadoop基于Zookeeper的集群(5台主机)

文章目录一、设计集群图二、准备五台虚拟机2.1、下载安装文件2.2、创建虚拟机2.3、配置网络2.4、修改主机名称2.5、关闭防火墙2.6、同步时间2.7、设置/etc/hosts文件2.8、设置免密登录2.9、为后面可以主备替换安装psmisc三、安装JDK3.1、安装jdk3.2、测试jdk是否安装成功3.3、将…

11.Dockerfile最佳实践

Dockerfile 最佳实践 Docker官方关于Dockerfile最佳实践原文链接地址:https://docs.docker.com/develop/develop-images/dockerfile_best-practices/ Docker 可以通过从 Dockerfile 包含所有命令的文本文件中读取指令自动构建镜像,以便构建给定镜像。 …

学生投票系统-课后程序(JAVA基础案例教程-黑马程序员编著-第三章-课后作业)

【案例3-4】学生投票系统 记得 关注,收藏,评论哦,作者将持续更新。。。。 【案例介绍】 案例描述 某班级投票竞选班干部,班级学生人数为100人,每个学生只能投一票。 本任务要求,编程实现一个投票程序&…

Xshell连接阿里云服务器搭建网站

一、建设一个网站的基本要求 申请一个独立的域名申请一台云服务器ECS在服务器上安装网站环境,如:Apache发布网站内容至云服务器将第一步注册的域解析至云服务器的外网IP地址进行ICP备案 二、用户访问网站的过程 在浏览器上输入域名浏览器自动调用DNS&…

WMS系统在生产管理中能带来哪些好处?

springbootVue开发的WMS仓库管理系统源码有演示! 一个成熟的WMS的使用,能给仓库管理企业和部门带来明显的好处,包括但是不限于如下: 1、减少了企业大量无效的纸张进行记录学生作业,实现无纸化管理; 2、可以更好地准备…

嵌入式ARM设计编程(三) 处理器工作模式

文章和代码已归档至【Github仓库:hardware-tutorial】,需要的朋友们自取。或者公众号【AIShareLab】回复 嵌入式 也可获取。 一、实验目的 (1) 通过实验掌握学会使用msr/mrs 指令实现ARM 处理器工作模式的切换,观察不…

用上Visual Studio后,我的世界游戏的构建时间减少了一半

今天我们讲述一个使用 Visual Studio 提升工作效率的案例。 我的世界(Minecraft) 游戏开发商 Mojang Studios 近日联系了 Visual Studio C 团队,因为他们需要将 C 开发扩展到新平台(Linux),同时还希望保留他们现有的技术基础&…

哈希表题目:矩阵置零

文章目录题目标题和出处难度题目描述要求示例数据范围进阶解法一思路和算法代码复杂度分析解法二思路和算法代码复杂度分析解法三思路和算法代码复杂度分析题目 标题和出处 标题:矩阵置零 出处:73. 矩阵置零 难度 3 级 题目描述 要求 给定一个 m…