vue之table初始化后修改单条数据视图不更新的问题总结

vue之table初始化后修改单条数据视图不更新的问题总结

问题场景:
当ajax请求请求到后台数据后,我们仍然有需求修改该数据中某条数据,而使用如下星号包围代码的方法实时更新不了视图。

	vue中: 
	data(){
		listData: []
	}
	created : {
		this.initdata()
	}
	methods : {
		initData() {
			  var that = this
			  getOrderDetails(orderNo)
			        .then(data => {
			        	that.listData = data.list
			        	***that.listData[0].name = 'zhangsan'***
			        })
			        .catch(err => {
			          console.log(err)// 错误信息
			        })
		}
	}

此时,我们要实时更新视图的话,就要使用数组变异方法

push() 往数组最后面添加一个元素,成功返回当前数组的长度
pop() 删除数组的最后一个元素,成功返回删除元素的值
shift() 删除数组的第一个元素,成功返回删除元素的值
unshift() 往数组最前面添加一个元素,成功返回当前数组的长度
splice() 有三个参数,第一个是想要删除的元素的下标(必选),第二个是想要删除的个数(必选),第三个是删除
后想要在原位置替换的值(可选)
sort() 使数组按照字符编码默认从小到大排序,成功返回排序后的数组
reverse() 将数组倒序,成功返回倒序后的数组

当listData中的数据的结构为:

{ ‘‘name: zhaoliu’’, ‘‘name: lisi’’, ‘‘name: wangwu’’}

我们上面的需求将“***”星号包围代码修改为:

that.listData.splice(0,1,'zhangsan')

当listData中的数据的结构为 :

{{object1},{object2}, ‘obkect3’}

我们上面的需求将“***”星号包围代码修改为:

const objectTemp = that.list[0]
objectTemp.name = 'zhangsan'
that.listData.splice(0,1, objectTemp)

这样,我们的视图即可得到实时更新,此外注意数组变异方法都是可以出发vue更新视图的,而单纯的赋值则不会。


http://www.niftyadmin.cn/n/1466428.html

相关文章

spring boot打包

1. pom文件引入插件 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins> </build>2.idea中快速打包 3.发布到服务器 …

Linux服务器 Redis安装、部署、设置密码、设置允许远程访问、开机自启动

Redis安装 1.首先上官网查看Redis 压缩包版本&#xff0c;地址&#xff1a;http://redis.io/download 下载稳定版即可。 2.进入指定文件夹&#xff0c;我这里在/usr/local目录 cd /usr/local3.下载、解压 wget http://download.redis.io/releases/redis-5.0.5.tar.gz tar x…

力扣 最长有效括号

// 有效括号的最长长度// 子串问题&#xff1a;严格以每个结尾计算个答案&#xff0c;最终答案必在其中public static int longestValidParentheses(String s) {if (s null || s.length() < 2) return 0;int[] dp new int[s.length()]; // dp[i]&#xff1a;严格以i位置结…

Linux服务器 Mysql数据库安装(阿里云)

Mysql安装 进入指定文件夹&#xff0c;我这里在/usr/local目录 cd /usr/local下载、解压 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz tar xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz准备工作 1.移动文件夹 mv…

Linux服务器 删除自带的openJDK 安装JDK

1.查看java版本 java -version2.输入&#xff1a;rpm -qa | grep jdk 会查询出系统自带的OpenJDK及版本 3.删除openJDK版本 rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.252.b09-2.el7_8.x86_64 rpm -e --nodeps java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64 rp…

微信小程序 vue接口封装

微信小程序封装 import __config from 后端地址const request (url, method, data, showLoading) > {let _url __config.basePath urlreturn new Promise((resolve, reject) > {if (showLoading) {wx.showLoading({title: 加载中,})}wx.request({url: _url,method: m…

Linux服务器 nginx安装、nginx启动、重启常用命令

安装依赖 yum -y install gcc gcc-c automake pcre pcre-devel zlib zlib-devel open openssl-devel下载nginx稳定版 #进入/usr/local目录 cd /usr/local #创建nginx文件夹 mkdir nginx #进入/usr/local/nginx的目录 cd /usr/local/nginx #解压下载好的压缩包 wget http://ng…

微信小程序使用 iconfont-阿里巴巴 彩色图标库

1.进入https://www.iconfont.cn/官网 2将需要的图标添加到购物车&#xff0c;点击购物车将图标添加至相应的目标项目中 3打开目标项目&#xff0c;下载代码至本地 4将下载的文件进行压缩&#xff0c;命名为iconfont 5 切换到iconfont文件夹 &#xff0c;在地址栏中输入cmd …