Element Plus组件

文章目录

Element Plus组件总览

el-descriptions 和 el-descriptions-item

el-descriptionsel-descriptions-item 是 Element Plus 中用于展示"键值对"形式信息的组件(类似详情页的属性说明),常用于展示对象的多个属性,比如用户信息、数据详情等。下面详细介绍它们的用法和常用属性:

1. el-descriptions(容器组件)

作为描述列表的外层容器,用于控制整体布局(列数、对齐方式、边框等),内部嵌套 el-descriptions-item 作为每一项。

常用属性:
属性名 说明 类型 默认值
column 每行展示的列数(屏幕尺寸变化时可通过 responsive 自适应) number 3
border 是否显示边框(带边框的列表更像表格样式) boolean false
direction 排列方向(horizontal 横向 / vertical 纵向) string 'horizontal'
align 内容对齐方式(left / center / right,作用于所有项) string 'left'
label-align 标签的对齐方式(优先级高于 align,仅控制 label 部分) string 'right'
responsive 是否响应式布局(屏幕变小时自动调整列数) boolean true

2. el-descriptions-item(子项组件)

作为描述列表的每一项,用于展示单个"键值对"(label 为键,内部内容为值)。

常用属性:
属性名 说明 类型 默认值
label 左侧的标签文本(键名) string ---
span 该项占多少列(默认占 1 列,可跨列,类似表格的 colspan number 1
align 该项内容的对齐方式(覆盖容器的 align string ---
label-align 该项标签的对齐方式(覆盖容器的 label-align string ---

基本用法示例

vue 复制代码
<template>
  <!-- 带边框的描述列表,每行3列 -->
  <el-descriptions 
    column="3" 
    border 
    label-align="center"
  >
    <!-- 每一项:label 是键,内部是值 -->
    <el-descriptions-item label="姓名">张三</el-descriptions-item>
    <el-descriptions-item label="年龄">25</el-descriptions-item>
    <el-descriptions-item label="性别">男</el-descriptions-item>
    <!-- 跨列示例:该项占2列 -->
    <el-descriptions-item label="地址" span="2">北京市朝阳区</el-descriptions-item>
    <el-descriptions-item label="职业">工程师</el-descriptions-item>
  </el-descriptions>
</template>
效果说明:
  • 整体显示 3 列,带边框,标签居中对齐。
  • "地址"项通过 span="2" 跨 2 列,所以一行中"地址"会占据两列位置,后面紧跟"职业"项。

结合响应式数据使用

通常会配合 Vue 的响应式数据动态展示内容,比如你的示例中使用 {``{ overview.xxx }} 绑定数据:

vue 复制代码
<template>
  <el-descriptions :column="3" border>
    <!-- 动态绑定数据 -->
    <el-descriptions-item label="裂缝总数">{{ overview.totalCracks }}</el-descriptions-item>
    <el-descriptions-item label="高速公路">{{ overview.highwayName }}</el-descriptions-item>
    <el-descriptions-item label="检测时间">{{ overview.detectionDate }}</el-descriptions-item>
  </el-descriptions>
</template>

<script setup>
import { reactive } from 'vue'

// 响应式数据
const overview = reactive({
  totalCracks: 120,
  highwayName: '京藏高速',
  detectionDate: '2023-10-01'
})
</script>

overview 中的数据变化时,描述列表会自动更新展示内容。

纵向排列(direction="vertical"

适合移动端或需要垂直展示的场景:

vue 复制代码
<el-descriptions direction="vertical" column="1">
  <el-descriptions-item label="姓名">张三</el-descriptions-item>
  <el-descriptions-item label="年龄">25</el-descriptions-item>
</el-descriptions>

效果:标签和值上下排列(标签在上,值在下),每行占 1 列。

总结

  • el-descriptions 是容器,负责整体布局(列数、边框、对齐等)。
  • el-descriptions-item 是子项,负责单个键值对的展示,可通过 span 跨列。
  • 常用于详情页、数据概览等需要清晰展示多个属性的场景,配合响应式数据可实现动态更新。
相关推荐
Hilaku1 分钟前
为什么很多工作 5 年的前端,身价反而卡住了?🤷‍♂️
前端·javascript·面试
ai超级个体2 分钟前
前端下午茶:这 3 个网页特效建议收藏(送源码)
前端·three.js·threejs·网页设计·vibe coding·网页灵感·网页分享
维斯182 分钟前
VueFlow 图自适应容器尺寸教程
前端
helloweilei2 分钟前
next/dynamic和React.lazy的区别
前端·next.js
Aaron_Feng5 分钟前
一个小工具解决Swift Actor重入问题
前端
笨笨狗吞噬者6 分钟前
维护 uniapp 小程序端近一年,我想拉一个开发者交流群
前端·程序员·uni-app
前端炒粉12 分钟前
React 面试高频题
前端·react.js·面试
程序员陆业聪14 分钟前
让 Android 里的 AI 真正「干活」:Function Calling 工程实现全解
前端
mumuWorld16 分钟前
解决openclaw以及插件安装的报错
前端·ai编程
GISer_Jing16 分钟前
前端组件库——shadcn/ui:轻量、自由、可拥有,解锁前端组件库的AI时代未来
前端·人工智能·ui