前言前段时间将 antd 一些组件的源码看了一下 , 特别是 Button 组件的源码 , 我真的是跪了 , what the f**k , 原来还能这么设计 , less 居然还能这么用 。这不 , 参考Antd Button源码 , 结合视觉交互 , 经过三次的设计评审 , 终于在今天 , 把 Button 组件撸出来了 。下面记录一下自己的设计和开发思路~
希望大家能耐得住性子去看 , 因为这个 Button 组件有太多种情况了 , 包括在设计、开发中遇到的一些坑 , 当然我这个设计不一定是好的 , 所以也希望 , 大家看完之后可以给点建议 , 谢谢大家喏~看完文章你会收获什么?我也不知道你能收获什么 , 这篇文章主要是记录我在开发一个公共组件的一些思考设计和遇到的坑 , 如果你也是跟我一样 , 想知如何写一个公共组件 , 或者是开发一个公共组件该做些什么准备 , 那么这篇文章可能会让你有一丝丝的启发~
效果担心大家一直听我逼逼 , 给大家一种纸上谈兵的错觉 , 我就先上效果图 。最终的实现
ButtonIcon 和 ButtonText 未来得及开发 , 这两个组件问题不大

文章插图
设计思想在谈具体设计和开发之前 , 请允许我说几句话 , 个人想法: 前期的设计及评审很重要 , 不要盲目就下手去撸代码 , 也不要闭门造车 , 自己一个人搞 , 一定要在开发之前 , 将你能考虑到的所有情况和规则罗列出来 , 进行评审 , 组内成员提出建议并且进行查缺补漏(因为使用者就是你身边的小伙伴 , 相信他们会给你提很多“无理”的要求)
组件设计下面是我根据视觉小姐姐给的视觉稿 , 结合交互 , 最终将 Button 组件分为
使用场景按照使用场景 , Button 组件可分为 :
- 普通按钮
- 图标按钮
- 文本按钮
- 组合按钮
- 幽灵按钮
- 反白按钮
- 主按钮
- 次按钮
- 小按钮
- 标准按钮
- 大按钮
- 拇指按钮
- 主题按钮
- 警示按钮
- 危险按钮
这里有小伙伴要懵逼了 , 这个属性不是很简单吗 , 为什么要单独拿这个属性出来讨论呢?来来来 , 我们讨论一下 ~
【我再也不敢说我会写前端 Button组件「实践」】且不说组内视觉给的 , 我们来看看业内一些优秀 UI 库 , 他们对 Button type 的定义
Ant Design对于 type 的定义 , 仅支持主按钮、次按钮、虚线按钮和链接按钮 。

文章插图
在我的认知中 , 对于按钮的颜色说明 , 是这样的
- 蓝色 , 主色调 , 表按钮是用来说明意义 。
- 绿色 , 成功色调 , 表按钮是成功
- 橙色 , 警示色调 , 表按钮是警告、提示
- 红色 , 错误色调 , 表按钮是错误、危险
? 不好意思 , 你想太多了Antd单独提供了一个danger属性 , 用于设置该按钮为危险按钮 。也就是说 , 这样才是对的
<Button type="primary" /> // 蓝色<Button type="primary" danger />// 红色iView我们再来看一下 iView 对于 Button type的一个定义 。推荐阅读
- 我一直以为SQL先执行SELECT语句?一个窗口函数,我突然发现错了
- 哈工程-菲尼克斯电气工业4.0示范创新中心 助力我国智能制造发展
- 喝茶能降血脂和胆固醇吗?
- 巅茶青柑我懂你,下关天马小青柑
- 二十支队伍参加斗茶会,无我茶会
- 夜来香如何养殖
- Hello Redis,我有7个问题想请教你
- 全国十大美食小吃排行榜
- 如何写申诉或维权材料
- 白头发是怎么长出来的?
