很常用的开关组件
需求分析
惯例先行需求分析
- 分为选中/未被选中,两种状态
- 可以通过点击变更选中状态
- 不同的选中状态有不同的颜色,且有滑块处于不同的端
- 可以指定不同的尺寸
- 可以自定义颜色
- 可以设置为禁用
那么可以整理出以下参数表格
参数 | 含义 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
value | 默认选择状态 | boolean | false / true | false |
size | 尺寸 | string | middle / small / large | middle |
color | 颜色 | string | 任意合法颜色值 | #f3678e |
disabled | 是否禁用 | boolean | false / true | false |
骨架
因为具有和 button
标签一样的”点击”之功能,所以可以直接使用 button
标签来实现
然后用一个 div
来充当滑块
容易得到如下骨架
1 | <template> |
功能
先 ts 声明
1 | declare const props: { |
然后在 export default
中,写入我们的参数
1 | export default { |
再补全 setup
方法
1 | setup(props, context) { |
样式表
然后补全样式表
1 | @mixin layout($r, $d) { |
测试
引入文档页看一下
1 | // src/components/Switch.vue |
效果如图
感谢阅读