简介
我们开始只关注组件的功能实现,不考虑 css 分装、webpack 配置、整体结构设计、单元测试等等,因为在后面会一步一步完善。让大家一起进步,实现一套简单的组件库。
Button
组件也是经常用到的,首先我么也要了解Button
都有什么功能,一样的可以参考element/iview
中button
功能。再结合我们的业务场景定制一些,适合自己项目的通用组件库。最后我们会把写好的 UI 框架库发布到 npm 中。
本组件的开发步骤和前面breadcrumb基本上一至,因为它们都是比较简单的组件,不需要分成多个模块来编写。大致步骤如下:
- 分析
button
组件功能 - 构思代码、编写代码
- 测试组件效果,(编写单元测试)
分析组件功能
首先要明确的了解要写的button
组件要包含哪些功能,这样更有利于组件整体的构思和实现。如下图所示:
状态
在很多ui框架
中可以看到它们的button
都是有(状态/类型)的,结合自己使用的场景大致分为defalut
、primary
、success
、warning
、info
、error
这个都可以通过通过一个type
传入我们的button
组件以切换我们组件的状态。
类型
同时有不同类型的按钮类型比如dashed
、ghost
、text
、icon
、round
、circle
、loading
、disabled
类型。
大小
支持设置大小lg
、md
、sm
、xs
其他功能
支持路由跳转to
,支持replace
跳转,支持自动获取原生type
属性,同时支持icon
传入和自定义icon
图标。下面我们就根据上面的的计划一步一步实现功能。
支持设置html标签
为a
标签。
代码实现
首先实现简单的type类型