vue数据更新table内容不更新解决方法

场景:

table组件绑定的数据变化时,页面没有重新渲染,常见于子组件中使用table组件

原理:

创建实例时 数组在vue中没有被监听到,属于非响应式数据,数组的下标变化无法监听到

解决方式:

js 复制代码
    <el-table
          :key="tamptime"
          stripe
          border
          fit
          height="450"
          :data="tabledata"
          style="width: 100%"
        >
          <el-table-column
            v-for="i in pretabledatacolumn"
            :key="i.index"
            show-overflow-tooltip
            :prop="i"
            :label="i"
            width="230"
          />
        </el-table>

data(){
    return {
        tabledata:[],
        pretabledatacolumn:[],
        tamptime:new Date().valueOf()
    }
}
methods:{
	changeTableData(){
		this.tabledata = []
	}
}

1、利用vue中重写的数组方法

splice,split,concat...

js 复制代码
changeTableData(){
	this.tabledata.splice(1,0)
}

2、为table绑定一个key,数据变化时更改key值,或者使用v-if绑定一个不重复的值触发组件渲染

js 复制代码
changeTableData(){
		this.tamptime = new Date().valueOf()
		this.tabledata = newtabledata
	}

3、使用$set()

js 复制代码
changeTableData(){
	this.$set(tabledata,1,'newvalue')
	}
相关推荐
POLITE335 分钟前
Leetcode 437. 路径总和 III (Day 16)JavaScript
javascript·算法·leetcode
難釋懷1 小时前
解决状态登录刷新问题
java·开发语言·javascript
ヤ鬧鬧o.1 小时前
多彩背景切换演示
前端·css·html·html5
一起养小猫1 小时前
Flutter实战:从零实现俄罗斯方块(三)交互控制与事件处理
javascript·flutter·交互
lethelyh1 小时前
Vue day1
前端·javascript·vue.js
酉鬼女又兒1 小时前
SQL113+114 更新记录(一)(二)+更新数据知识总结
java·服务器·前端
无风听海1 小时前
AngularJS中 then catch finally 的语义、执行规则与推荐写法
前端·javascript·angular.js
利刃大大2 小时前
【Vue】组件化 && 组件的注册 && App.vue
前端·javascript·vue.js
Whisper_Sy2 小时前
Flutter for OpenHarmony移动数据使用监管助手App实战 - 周报告实现
开发语言·javascript·网络·flutter·php
Anastasiozzzz2 小时前
leetcodehot100--最小栈 MinStack
java·javascript·算法