自定义表格也是非常香的
需求分析
惯例先行需求分析
- 基于原生 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 | 
效果如图

感谢阅读