Elementui渲染问题

本文档记录了在使用elemenui框架时遇到的数据渲染问题,特别是将API返回的数据转化为适合el-table和el-descriptions组件显示的格式。问题在于数据需要转化为数组形式,通过在`created`钩子中使用`axios`获取数据并用`push`方法转换数据类型。在el-table中,只需将数据赋值给`data`属性并指定`prop`为需要显示的字段。而在el-descriptions中,使用模板语法`{{}

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

本博客记录一些我个人在使用elemenui时渲染数据遇到的问题



一、数据需要转化为数组形式

1.官方el-table代码

<template>
  <el-table
    :data="tableData"
    border
    style="width: 100%">
    <el-table-column
      prop="date"
      label="日期"
      width="180">
    </el-table-column>
    <el-table-column
      prop="name"
      label="姓名"
      width="180">
    </el-table-column>
    <el-table-column
      prop="address"
      label="地址">
    </el-table-column>
  </el-table>
</template>

<script>
  export default {
    data() {
      return {
        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 弄'
        }]
      }
    }
  }
</script>

 官方el-descriptions代码

<el-descriptions title="用户信息">
    <el-descriptions-item label="用户名">kooriookami</el-descriptions-item>
    <el-descriptions-item label="手机号">18100000000</el-descriptions-item>
    <el-descriptions-item label="居住地">苏州市</el-descriptions-item>
    <el-descriptions-item label="备注">
      <el-tag size="small">学校</el-tag>
    </el-descriptions-item>
    <el-descriptions-item label="联系地址">江苏省苏州市吴中区吴中大道 1188 号</el-descriptions-item>
</el-descriptions>

2.在data属性中传入数据出现以下报错

说明需要转换数据类型

3.转换方法

import axios from 'axios';
import { ReqUserInfoByUserId } from "../../request/index.js";
export default {
  data() {
    return {
      selfInfo:[],
         };
  },
  created() {
  
       ReqUserInfoByUserId({ 
         id: '13f897e1fc7849a984de24eba92bf4ff'
        }).then((res)=>{
           
            this.selfInfo.push(res.data)

        }).then((erro)=>{
          console.log(erro)
        })
        
    },
    
  }

在data中定义数组类型 selfInfo,在获取数据中this.selfInfo.push(res.data)进行转换传入


二、具体渲染


1.观察数据

 


2.渲染数据

el-table在data改为所定义数据名并在prop处写上需要渲染的字段名即可

<el-table
    :data="selfInfo"
    border
    style="width: 100%">
<el-table-column
      prop="role.desc"
      label="学历"
      width="180">
    </el-table-column>
</el-table>

el-descriptions没有data属性,使用{{}}渲染,注意数组类型所选字段所在下标索引

<el-descriptions title="个人信息">
       
      <el-descriptions-item label="学历" >
{{ selfInfo[0].role.desc }}</el-descriptions-item>
      
      
</el-descriptions>

三、属性查看

官方文档所选属性页面最下方


### ElementUI 中实现分页渲染 DOM 的方法 为了优化性能并处理大量数据,在前端开发中通常会采用分页技术来减少一次性加载到页面上的 DOM 元素数量。通过这种方式可以显著提高用户体验和应用响应速度。 #### 使用 `el-pagination` 组件配合列表展示组件 ElementUI 提供了一个专门用于分页操作的组件——`el-pagination`,该组件能够方便地与各种类型的列表展示控件集成使用[^1]。下面是一个简单的例子说明如何结合 `el-table` 和 `el-pagination` 来创建带有分页功能的数据表格: ```html <template> <div class="pagination-container"> <!-- 数据表 --> <el-table :data="paginatedData" style="width: 100%"> <el-table-column prop="date" label="日期"></el-table-column> <el-table-column prop="name" label="姓名"></el-table-column> <el-table-column prop="address" label="地址"></el-table-column> </el-table> <!-- 分页器 --> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page.sync="currentPage" :page-size="pageSize" layout="total, prev, pager, next" :total="tableData.length"> </el-pagination> </div> </template> <script> export default { data() { return { tableData: [ { date: '2016-05-03', name: 'Tom', address: 'No. 189, Grove St, Los Angeles' }, // 更多条目... ], currentPage: 1, pageSize: 10 }; }, computed: { paginatedData() { const start = (this.currentPage - 1) * this.pageSize; const end = start + this.pageSize; return this.tableData.slice(start, end); } }, methods: { handleSizeChange(val) {}, handleCurrentChange(val) {} } }; </script> ``` 在这个实例里,`paginatedData` 是计算属性,它根据当前页码 (`currentPage`) 及每页显示项数 (`pageSize`) 对原始数据集进行了切片处理;而当用户改变分页选项时,则触发相应的事件处理器更新视图状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值