el-table二次封装
在vue开发中使用element-ui的el-table时一般都需要进行封装以便于复用,提高开发效率,减少重复代码,这篇博客对el-table进行简单的二次封装:
一、安装引入
npm
安装element-ui:
npm i element-ui -S
可以看文档按需引入,这里为了方便直接全局引入了:
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import ElementUI from 'element-ui' // 全局引入element-ui
import 'element-ui/lib/theme-chalk/index.css' // 样式文件需要单独引入
Vue.config.productionTip = false
Vue.use(ElementUI)
new Vue({
router,
store,
render: h => h(App)
}).$mount('#app')
二、封装功能
新建一个chris-el-table组件,遍历表头变量tableTitle
使用v-for
循环生成el-table-column
,使用slot
来实现自定义单元格:
三、样式覆盖
根据需要覆盖el-table的默认样式:
四、使用组件
直接传入表头数据tableTitle
和表格数据tableData
:
表头数据tableTitle
大概是这样:
tableTitle: [
{
label: '日期',
property: 'date'
},
{
label: '姓名',
property: 'name'
},
{
label: '地址',
property: 'address'
},
{
slot: 'handle'
}
]
表格数据tableData
对应property
,大概长这样:
tableData: [
{
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
},
{
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1517 弄'
},
{
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
},
{
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1516 弄'
}
]
需要自定义的单元格使用slot
,对el-table-column
进行修改:
查看
五、源码
源码扔在最后:https://github.com/chrischen0405/element-component-in-vue
共有 0 条评论