1.首先npm i element-ui -S 安装element-ui
2.引入 Element
在 main.js 中写入以下内容:
import Vue from 'vue'; import ElementUI from 'element-ui'; import 'element-ui/lib/theme-chalk/index.css'; import App from './App.vue'; Vue.use(ElementUI); new Vue({ el: '#app', render: h => h(App) });
3.封装公共组件
<!-- CustomTable.vue -->
<template>
<el-table :data="tableData" style="width: 100%" stripe v-loading="isLoading">
<template v-for="column in columns">
<el-table-column v-if="!column.useSlot" :key="column.prop" :prop="column.prop" :label="column.label" align="center" :min-width="column.minwidth" :fixed="column.fixed"></el-table-column>
<el-table-column v-else :key="column.prop + 1" :prop="column.prop" :label="column.label" align="center" :min-width="column.minwidth" :fixed="column.fixed">
<template slot-scope="scope">
<slot :name="column.prop" :scope="scope"></slot>
</template>
<template slot="header" v-if="column.header">
<slot :name="column.prop + 'header'"></slot>
</template>
</el-table-column>
</template>
</el-table>
</template>
<script>
export default {
props: {
tableData: {
type: Array,
required: true
},
columns: {
type: Array,
required: true
},
isLoading: {
type: Boolean,
default: false
}
}
}
</script>
4.全局注册
Vue.component('Table', Table)
5.使用
<Table :table-data="tableData" :columns="tableColumns"></Table>
tableData 传入数据
tableColumns传入表头
例如
tableColumns: [
{ prop: 'name', label: '名称', useSlot: false, minwidth: '120px'},
]
标签:Vue,App,element,ui,import,Table,type From: https://blog.csdn.net/m0_63542260/article/details/139613575