自定义表格也是非常香的
需求分析
惯例先行需求分析
- 基于原生
table
标签的强语义 - 允许用户自定义表头、表体
- 可选是否具有边框
那么可以整理出以下参数表格
参数 | 含义 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
heads | 表头 | Array | 数组,每一项包含两个 string 字段:name、identifier | 必填 |
datas | 表数据 | Array | 数组,每一项包含与 heads 相同数量的 string 字段 | 必填 |
bordered | 是否有边框 | boolean | false / true | false |
骨架
容易得到如下骨架
1 | <template> |
让用户自己填写内容即可
功能
先 ts 声明
1 | declare const props: { |
然后在 export default
中,写入我们的参数
1 | export default { |
样式表
然后补全样式表
1 | .laby-table { |
注意,当设置属性 bordered
的时候,因为它不是 DOM 元素本有的属性,所以无论什么情况都会被添加,只不过值可能是 false
但是 disabled
属性就没有这个问题,它为 false 值时不会绑定到 DOM 元素上
所以,此处属性选择器要写 [bordered="true"]
测试
引入文档页看一下
1 | // src/components/Dialog.vue |
效果如图
感谢阅读