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')
	}
相关推荐
xhxxx9 分钟前
你的 AI 为什么总答非所问?缺的不是智商,是“记忆系统”
前端·langchain·llm
3824278271 小时前
python:输出JSON
前端·python·json
2503_928411561 小时前
12.22 wxml语法
开发语言·前端·javascript
光影少年1 小时前
Vue2 Diff和Vue 3 Diff实现及底层原理
前端·javascript·vue.js
2501_946224312 小时前
旅行记录应用统计分析 - Cordova & OpenHarmony 混合开发实战
javascript·harmonyos·harvester
傻啦嘿哟2 小时前
隧道代理“请求监控”实战:动态调整采集策略的完整指南
前端·javascript·vue.js
JIngJaneIL2 小时前
基于java + vue个人博客系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
C_心欲无痕2 小时前
vue3 - readonly创建只读的响应式对象
前端·javascript·vue.js
Rabi'2 小时前
编译ATK源码
前端·webpack·node.js
SoaringHeart2 小时前
Flutter组件封装:视频播放组件全局封装
前端·flutter