element-plus+Vue3实现表格数据动态渲染

本文介绍了如何从零开始构建一个面试学习系统,重点分享了利用Element-Plus框架动态绑定后端获取的公司信息,包括公司名称、所在地、官网链接,并展示了如何处理数据以及创建交互功能,如点击按钮搜索面试记录。

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

前言:

最近跟小伙伴一起从0到1一起搭建一个面试学习系统,学习使用element-plus框架动态渲染从后端获取的数据,在这里跟诸位大佬一起分享:

话不多说,上代码:

    <div class="home_company">
      <el-table
        :data="getHomeShowAllCompany.companyArr"     //使用data属性动态绑定需要展示的数组
        height="auto"                                //height属性自适应
        border
        style="width: 100%"
      >
        //labal表示表头展示的名称  prop属性与数组中本列需要展示的数据名对应
        <el-table-column label="公司名称" prop="company_name">   
        </el-table-column>  
        <el-table-column label="公司所在地" prop="company_location">
        </el-table-column>
        <el-table-column label="公司官网" prop="website">
//如果你需要对数据进行其他的处理,你需要使用插槽scope.row.本行的任意属性名,即可以获得对应数据
          <template #default="scope">
            <a
              :href="scope.row.website"
              style="text-decoration: none; color: rgb(107, 164, 228)"
              >{{ scope.row.website }}</a
            >
          </template>
        </el-table-column>
        <el-table-column label="面试记录" width="90" align="center">
          <template #default="scope">
            <el-button
              type="primary"
              plain
              //插槽里的数据也可以作为参数进行传递
              @click="searchInterviewRecode(scope.row.ID)"
              >搜索</el-button
            >
          </template>
        </el-table-column>
      </el-table>
    </div>
<script setup>
//引用仓库获取公司数据
import { homeShowAllCompanyStore } from "@/store/home";
import { showAllRecords } from "~~/api/index";
//将请求到的全部公司的数组存在getHomeShowAllCompany中
let getHomeShowAllCompany = homeShowAllCompanyStore();
//传递的参数
let company_name = ref("");
let company_location = ref("");
let scale = ref(0);
let page = ref(1);
let pageSize = ref(10);
function searchInterviewRecode(ID) {
  showAllRecords(ID);
}
</script>

后端返回数据展示:

 实现效果展示:

Vue3中,结合Element Plus库和TypeScript创建表格列表通常涉及以下几个步骤: 1. 安装依赖: 首先,你需要安装`vue`, `element-plus`, 和 `vue-class-component`(用于支持 TypeScript 的 Vue 组件)。如果还没安装,可以在终端或命令提示符中运行: ``` npm install vue@next element-plus vue-class-component @vue/types/vue ``` 2. 引入并配置Element Plus: 在你的`main.ts`或其他入口文件中,引入Element Plus并配置全局样式: ```typescript import { createApp } from &#39;vue&#39;; import ElementPlus from &#39;element-plus&#39;; import App from &#39;./App.vue&#39;; // 全局注册Element Plus组件 createApp(App).use(ElementPlus); ``` 3. 创建TS组件: 使用TypeScript创建一个表格组件,例如`Table.vue`: ```typescript import { Component, Prop } from &#39;vue-class-component&#39;; import { ElTable } from &#39;element-plus&#39;; @Component({ components: { ElTable, }, }) export default class Table extends Vue { @Prop() dataSource: any[]; // 数据源数组 @Prop() columns: Array<ElTableColumn>; // 表头配置 mounted() { this.$el.addEventListener(&#39;selection-change&#39;, (event) => { console.log(&#39;选中的行数据:&#39;, event.selections); }); } } ``` 4. 在模板中使用表格: 在组件内,你可以像下面这样渲染表格: ```html <template> <el-table :data="dataSource" :columns="columns"> <!-- ...省略列的渲染 --> </el-table> </template> ``` 5. 调用组件: 在其他需要表格的地方,你可以通过props传递数据和配置: ```html <Table :dataSource="yourData" :columns="tableColumns"/> ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值