vue数据更新后,表格没有更新,需要点击两次才更新

问题背景

开发背景,点击按钮获取后端不同的返回数据,根据数据进行表格的渲染,数据列的数量不同,想要达到的效果是点击不同的按钮,弹出不同的表格,表格根据列的变化而变化。

问题描述

1、vue中表格数据更新之后,表格并没有更新,二次触发之后,才更新。

解决方法

1、给el-table设置一个key,每次当数据更新之后,再将key值+1,相当于改变了dom元素,从而触发dom元素的更新,达到更新表格的目的。

1、在《el-table》中加入属性
在这里插入图片描述
2、在data中加入变量的定义并初始化
在这里插入图片描述
3、在methods的函数中通过对变量的自增,从而触发el-table 的刷新
在这里插入图片描述

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue2 中,你可以使用 `v-for` 指令和计算属性来渲染长表格。 首先,你需要定义一个包含表格数据的数组。在这个数组中,每个元素都代表一行数据。然后在模板中,你可以使用 `v-for` 指令来遍历数组,并渲染每一行数据。 下面是一个简单的例子: ```html <table> <thead> <tr> <th>姓名</th> <th>年龄</th> <th>性别</th> </tr> </thead> <tbody> <tr v-for="person in persons" :key="person.id"> <td>{{ person.name }}</td> <td>{{ person.age }}</td> <td>{{ person.gender }}</td> </tr> </tbody> </table> ``` 在上面的例子中,我们使用了 `v-for` 指令来遍历 `persons` 数组,并渲染了每一行数据。注意到我们还使用了 `:key` 属性来指定一个唯一的键,以便 Vue 能够正确地跟踪每个元素。 如果你的表格数据比较大,你可能需要考虑分页来提高性能。这时,你可以使用计算属性来动态地渲染每一页的数据,而不是一次性渲染所有数据。 下面是一个使用分页的例子: ```html <table> <thead> <tr> <th>姓名</th> <th>年龄</th> <th>性别</th> </tr> </thead> <tbody> <tr v-for="person in filteredPersons" :key="person.id"> <td>{{ person.name }}</td> <td>{{ person.age }}</td> <td>{{ person.gender }}</td> </tr> </tbody> </table> <div> <button @click="prevPage">上一页</button> <span>{{ currentPage + 1 }} / {{ pageCount }}</span> <button @click="nextPage">下一页</button> </div> ``` ```js export default { data() { return { persons: [...], // 表格数据 pageSize: 10, // 每页显示的数据条数 currentPage: 0 // 当前页码 } }, computed: { pageCount() { // 分页总数 return Math.ceil(this.persons.length / this.pageSize) }, filteredPersons() { // 动态计算当前页的数据 const start = this.currentPage * this.pageSize const end = start + this.pageSize return this.persons.slice(start, end) } }, methods: { prevPage() { // 切换到上一页 if (this.currentPage > 0) { this.currentPage-- } }, nextPage() { // 切换到下一页 if (this.currentPage < this.pageCount - 1) { this.currentPage++ } } } } ``` 在上面的例子中,我们使用了一个名为 `filteredPersons` 的计算属性来动态计算当前页的数据。我们还定义了两个方法 `prevPage` 和 `nextPage` 来实现切换页码的功能。最后,我们在模板中添加了两个按钮,用于切换页码。 总的来说,使用 `v-for` 指令和计算属性来渲染长表格是非常简单的。如果你的表格数据比较大,你可以使用分页来提高性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值