在vue开发中使用element-ui的el-table时一般都需要进行封装以便于复用,提高开发效率,减少重复代码,这篇博客对el-table进行简单的二次封装:
一、安装引入
npm
安装element-ui:1
npm i element-ui -S
可以看文档按需引入,这里为了方便直接全局引入了:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15import 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
来实现自定义单元格:
1 | <template> |
三、样式覆盖
根据需要覆盖el-table的默认样式:
1 | <style scoped lang="scss"> |
四、使用组件
直接传入表头数据tableTitle
和表格数据tableData
:
1 | <chris-el-table |
表头数据tableTitle
大概是这样:
1 | tableTitle: [ |
表格数据tableData
对应property
,大概长这样:
1 | tableData: [ |
需要自定义的单元格使用slot
,对el-table-column
进行修改:
1 | <chris-el-table |
五、源码
源码扔在最后:https://github.com/chrischen0405/element-component-in-vue