亲宝软件园·资讯

展开

Element UI/Plus中全局修改el-table默认样式的解决方案

人气:0

起因

首先,Element 官网的表格样式默认是这样的:

如果我们需要改成这样:

那我们需要给el-tableel-table-column添加相应的props,即:

<el-table border>
  <el-table-column prop="xxx" label="xxx" align="center" show-overflow-tooltip />
  <el-table-column prop="xxx" label="xxx" align="center" show-overflow-tooltip />
  <el-table-column prop="xxx" label="xxx" align="center" show-overflow-tooltip />
  <!-- ... -->
</el-table>

这样,每个使用el-tableel-table-column的地方,都需要添加相应的props,这不仅增加我们的工作量,也让代码显得多余。

我们能否让每个组件的代码都简化成以下这样,并且仍然保留边框、居中和超出文本溢出的效果呢,即:

<el-table>
  <el-table-column prop="xxx" label="xxx" />
  <el-table-column prop="xxx" label="xxx" />
  <el-table-column prop="xxx" label="xxx" />
  <!-- ... -->
</el-table>

答案是可以的!

解决方案

在Vue2中

import Vue from 'vue'
import { Table, TableColumn } from 'element-ui'

// 获取组件的props
const TableProps = Table.props
const TableColumnProps = TableColumn.props

// 修改默认props
// 全局el-table设置
TableProps.border.default = true // 边框
// 全局el-table-column设置
TableColumnProps.align.default = 'center' // 居中
TableColumnProps.showOverflowTooltip.default = true // 文本溢出

Vue.use(Table)
Vue.use(TableColumn)

在Vue3中

import { createApp } from 'vue'
import App from './App.vue'
import ElementPlus from 'element-plus'
import { ElTable, ElTableColumn } from 'element-plus'

// 获取组件的props
const TableProps = Table.props
const TableColumnProps = TableColumn.props

// 修改默认props
// 全局el-table设置
TableProps.border = { type: Boolean, default: true } // 边框线
// 全局el-table-column设置
TableColumnProps.align = { type: String, default: 'center' } // 居中
TableColumnProps.showOverflowTooltip = { type: Boolean, default: true } // 文本溢出

const app = createApp(App)
app.use(ElementPlus)

这样只需要在全局设置一次,就可以在每个组件中生效,这样就可以少写很多代码了,同理我们也可以在全局设置其他组件的默认的props

总结

加载全部内容

相关教程
猜你喜欢
用户评论