一个好的组件应该是什么样的?
背景
19 年 6 月左右,我发布过一篇文章《Bit 初体验》 。在梳理这篇文章的过程中,我可以说深度体验了一把 bit 所提出的概念和做法,就像一颗种子种在我的脑海中,一开始我觉得这东西没什么。
我还记得我第一次与我的同事分享 bit 后,他说:
emm,虽然你讲了这么多,但是我觉得好像没有那么...有体感?
感觉没什么卵用?
啊,emm,既然你说了,就像你说的。我觉得我们现在如果引入 bit 会不会对我们的日常工作带来很多额外的工作量。
这种反应很正常,我是在 18 年初,就在 Vue 的官网见到过 bit ,当时我点进去大致浏览过一下。我当时的感受就是,没什么卵用,无非就是 " 前端垂直领域的 git "。对国内的支持情况还不咋地,连一篇像样的中文文档都找不到。
在我们的团队中一下子直接切换到 bit 的工作流,这确实不现实,在公司有那么多的基础建设都不知道 bit 这么个玩意。
但是,bit 的做法和概念,却是非常非常有价值和可以借鉴的!
所以,我想做一件事情,一步一步的把 bit 的玩法用我们熟悉的方式引入进来甚至有所延伸扩展,让大家认同其中的好处和价值。
认识组件
随着近些年”微前端“概念的不断酝酿,越来越多的团队开始着手将自己的业务处理为不同组件,然后通过一些微前端做法,编排到一个业务页面中去。
那么对于组件的维护就会变得越来越重要。所以,先来看看现在大多数团队是怎么维护组件的吧!
- 大库型,Antd、Element 标准的大库型
- 一次型,完全业务组件,用完一次再也不维护
- 高复用型,一看就应该单独封装以后给其他人用,比如:视频播放器
- 项目融合型,与业务项目在一起,混合 store,不分你我
我暂时能想到的就这几种类型的组件,如果你的团队也在维护自己的一套组件库,那么应该很容易理解我上面所说的。
我相信,既然这么做了,肯定有这么做的理由和好处,没有人会闲着没事找麻烦做不是,那么这些做法都有什么好处和痛点呢?我从几个方面入手分别分析一下。
方便、快捷
组件嘛,当然是最快能跑起来,最方便能看到效果最好咯。就这点来讲,还有什么比直接在业务项目里撸组件更快的方式吗!?
现在用个展示的面板,立马去 components 目录撸一个。
数据?不是有 store 吗?引入进来不就拿到数据了!
所见即所得,现在改完马上看到页面上的效果!无法反驳..
这么看确实开发这个组件是好快了,但是从整个业务需求实现来看,这么做真的是最快的吗?如果这样的做法是最快捷的,那为什么那么多团队在强调沉淀、封装、抽象呢?
其实很多组件当时看起来,这辈子就只可能用一次,不用封装。可是往往交互稿过来的时候就会发现,这个样式好像我在哪里见过。然后去各种业务项目里一顿翻,哇终于找到了,复制过来发现各种爆红,定睛一看,store???
所以,聪明的团队早已洞察这一切,让我们把组件都维护到同一个地方,然后大家写好文档,用的时候从库里面取就可以了,有 Bug 的话统一修复就是,棒
一个好的组件应该是什么样的?相关推荐
- java拖动组件,[小娱乐] 一个能拖动组件、改变组件大小的容器
[小娱乐] 一个能拖动组件.改变组件大小的容器 /* * JDragpullPane.java * * Created on 2007年3月20日, 上午12:31 */ package javax. ...
- 构建你的第一个Vue.js组件
我记得当时我拿起CakePHP,我很喜欢,开始使用它是多么容易.这些文档不仅结构合理,详尽无遗,而且用户友好.多年以后,这正是我在Vue.js中感受到的.然而,与Cake相比,Vue文档仍然缺少一件事 ...
- animation基础练习源码_用vue简单写一个音乐播放组件「附源码」
作者:vipbic 转发链接:https://segmentfault.com/a/1190000022980992 前言 上次小编也分享一个关于Vue 开发过音乐播放对项目: 基于 electron ...
- 快速实现一个Http回调组件
2019独角兽企业重金招聘Python工程师标准>>> 快速实现一个Http回调组件 一.前情回顾 我们平时在使用一些库的时候,会遇到一些看起来很舒服的写法,用起来感觉很简单,而 ...
- 如何对第一个Vue.js组件进行单元测试
by Sarah Dayan 通过莎拉·达扬 In Build Your First Vue.js Component we made a star rating component. We've c ...
- 学会使用ant design封装一个锚点组件
我是歌谣 放弃很容易 但是坚持一定很酷 封装一个锚点组件就是要知道一个父子组件的一个传值 很显然 父亲这边传过去一个数组 然后就可以进行循环遍历得到一个新的数值 这边注意 当我们进行一个map返回值得 ...
- 第九节:掌握vue的另一个核心:组件
连续几天没空写文章了,最近忙着弄一个小程序,经过几天的coding,终于在今天下午提交审核,等待审核中.... 大家久等了,是时候接着学习我们的vue基础系列教程了,第一节我们就介绍过,vue有两大核 ...
- 一个Camel Multicast组件聚合策略问题的解决过程
摘要:本文通过案例,发现了一个Camel Multicast组件聚合策略相关的问题.通过查看Camel源代码,找到了问题原因并给出了解决方案.希望本文可以帮助到遇到同样问题的Camel用户. 本文分享 ...
- 独立完成一个城市选择组件(阿里前端题目,内附知识点、思路)
借用了两个久经考验的轮子:fastClick和better-scroll,介意可以就此打住.本文绝对原创,手打,思路清晰,知识不难,不适合大佬观看,谢谢. 首先说一下,我不是阿里的人,也没去阿里面试过 ...
- 本篇文章使用vue结合element-ui开发tab切换vue的不同组件,每一个tab切换的都是一个新的组件。
本篇文章使用vue结合element-ui开发tab切换vue的不同组件,每一个tab切换的都是一个新的组件. 1.vue如何使用element-ui 上一篇文章已经分享了如何在vue中使用eleme ...
最新文章
- 一文看尽深度学习中的20种卷积(附源码整理和论文解读)
- 百度地图API开发概述
- linux启动lsyncd服务,Ubuntu下lsyncd实现远端实时同步配置
- 面试 linux 进程通讯,【转】LINUX驱动的经典面试问题...
- ASP.NET Core 认证与授权[4]:JwtBearer认证
- 想要摆脱手工报表困境?1个工具+5个场景解决80%工作难题
- WiFi 6 目前还不适合个人用户
- C# 调用Excel组件生成excel文件
- oracle数据库长连接和短连接,tcp 长连接与短连接
- 无人驾驶——激光雷达篇
- Airbnb短租分析
- 使用Python解密仿射密码
- Spoon Kettle 输入之获取文件名(Get file names)
- 游戏中的造型师——3D美术
- shp数据中文乱码的一种恢复方法
- 构建MFS+Keepalived双机高可用热备方案`
- error C2041: illegal digit ‘9‘ for base ‘8‘ | error C2059: syntax error: ‘bad suffix on number‘
- WESAD:情绪分类多模态传感器数据集
- 舔狗是这样实现列表过滤和列表排序滴
- 令人费解的MFC客户区
热门文章
- 不飘了,让图像识别算法快速产业落地
别再实验了,让你的图像识别算法赶紧上线!...
- 阿里员工发帖吐槽人不如驴:你不能一边抽我,一边问我爱不爱你
- 干货 | Python 标准库之 XML(上)
- exists用法_SQL中的ALL、ANY和SOME的用法介绍
- shell中$*和$@ 两个都区别
- 把一列数据分割成两列
- nginx高性能WEB服务器系列之七--nginx反向代理
- 14、剑指offer--链表中倒数第k个结点
- C#使用Gecko实现浏览器
- Python每日一练(1):计算文件夹内各个文章中出现次数最多的单词