this.$axios.post('https://....php',this.$qs.stringify({
user: 'suess'
}))
.then(res => {
this.dataa = res.data; //这里的dataa视图不会更新,在其他函数里this.dataa没有值
})

在Vue中中括号记法赋后,不会触发 updated,也就是视图没有更新。

用push, pop 等方法改变数组则可以,或者直接将指针指向一个新的数组,例如通过 slice,filter,map等方法返回的新数组,也会触发视图更新。

也可以通过Vue.$set()的办法来改变数组的值。


$set

ps:现在有两个数组,分别为arr1,arr2,如果arr1以下标赋值改变数组,arr2以$set改变数组,结果是什么样呢?

data:{

arr1 = ['a','b','c'];

arr2 = [‘foo','bar','baz'];

}

vm.arr1[1] = 'alpha';

vm.$set(vm.arr2, 1, 'alpha');

根据开始我们说的根据下标索引改变数组不能触发状态更新,我们会知道:第一个数组的第二项改变不会在页面更新,只有第二个数组的更改会在页面更新。然而结果却是:

arr1 = ['a', 'alpha', 'b', 'c'];

arr2 = [‘foo', 'alpha', 'bar','baz'];

两个数组的值都更新了,也就是说,arr2用$set()方法更新时,页面会全部更新一遍。

转自https://www.jb51.net/article/136049.htm

filter()快速过滤创建一个新数组

var new_array = arr.filter(

callback(element[, index[, array]])[, thisArg]

)

var a = [1,2,3,4].filter(m => true)

a

(4) [1, 2, 3, 4]

var a = [1,2,3,4].filter(m => false)

a

[]

var a = [1,2,3,4].filter(m => m>2)

a

(2) [3, 4]

转自https://blog.csdn.net/weixin_30680385/article/details/98122329

map()

(1) 返回一个经过处理后的新数组,但不改变原数组的值。

var a = [1,2,3,4,5]

var b = a.map((item) => {

return item = item * 2

})

console.log(a) // [1,2,3,4,5]

console.log(b) // [2,4,6,8,10]

转自https://www.jb51.net/article/150865.htm


循环push

方法1:循环push

for(var i in that.xuanzArr_beixuan){

that.xuanzArr.push([]);

}

方法2:解析JSON

JSON.parse(JSON.stringify(this.templateData))

转自https://www.cnblogs.com/shark1100913/p/12143534.html


slice()

slice是指定在一个数组中的元素创建一个新的数组,即原数组不会变

var color = new Array('red','blue','yellow','black');

var color2 = color.slice(1,2);

alert(color);   //输出 red,blue,yellow,black

alert(color2); //输出 blue;注意:这里只有第二项一个值

https://blog.csdn.net/hbwang_716/article/details/118684011

vue 数组更新(push【可用】,$set,slice,filter,map【都属于浅拷贝】)问题的更多相关文章

  1. Vue数组更新及过滤排序

    前面的话 Vue为了增加列表渲染的功能,增加了一组观察数组的方法,而且可以显示一个数组的过滤或排序的副本.本文将详细介绍Vue数组更新及过滤排序 变异方法 Vue 包含一组观察数组的变异方法,它们将会 ...

  2. vue 数组更新 this.$set(this.dataList, data.index, data.data)

    vue 数组更新 this.$set(this.dataList, data.index, data.data) https://www.cnblogs.com/huangenai/p/9836811 ...

  3. vue数组更新界面无变化

    1. vue数组更新界面无变化 1.1. 说明 对数组进行更新或者添加,一定要注意方式,我的情况是数组套数组,双重循环,在造数据的时候,不断从尾部添加数据,所以写成了如下形式,每次下拉都会去加载一批相 ...

  4. VUE 数组更新

    1.数据方法分类: (1)原数组改变 push pop unshift shift reverse sort splice (2)原数组未变,生成新数组 slice concat filter map ...

  5. 数组方法push() pop() shift() unshift() splice() sort() reverse() contact()浅拷贝 slice()原数组拷贝

    push() pop() shift() unshift() splice() sort() reverse() 参考资料:https://wangdoc.com/javascript/stdlib/ ...

  6. vue 数组更新检测注意事项

  7. vue数组操作不更新视图问题

    vue 观察数组的变异方法 更新视图 push() pop() shift() unshift() splice(i,n,arr) sort(xx) reverse() ex: app.book.pu ...

  8. vue数组对象修改触发视图更新

    直接修改数组元素是无法触发视图更新的,如 this.array[0] = { name: 'meng', age: 22 } 修改array的length也无法触发视图更新,如 this.array. ...

  9. vue 数组中嵌套的对象添加新属性--页面更新

    vue 数组中嵌套的对象添加新属性--页面更新:https://www.jianshu.com/p/8f0e5bb13735

随机推荐

  1. HMS Core基于地理位置请求广告,流量变现快人一步

    对于想买车的用户来说,如果走在路上刷社交软件时突然在App里收到一条广告:"前方500米商圈里的某品牌汽车正在做优惠,力度大福利多."不管买不买,八成都会去看看,原因有三:距离近. ...

  2. 三 单例模式【Singleton Pattern】  来自CBF4LIFE 的设计模式

    这个模式是很有意思,而且比较简单,但是我还是要说因为它使用的是如此的广泛,如此的有人缘,单例就是单一.独苗的意思,那什么是独一份呢?你的思维是独一份,除此之外还有什么不能山寨的呢?我们举个比较难复制的 ...

  3. ABC266.

    D 设 \(f_{t,p}\) 代表在 \(t\) 时间点时人在 \(p\) 点的最大收益,在这一步他可以 \(p\) 增加,不动,\(p\) 减少.于是得出状态转移方程:\(f_{t,p} = \m ...

  4. KingbaseES R6 集群禁用 root ssh 后需要修改集群为es_server 案例

    案例说明: 在生产环境下,由于安全需要,主机间不允许建立root用户的ssh信任连接,这样导致KingbaseES R6 repmgr集群,通过sys_monitor.sh脚本启动集群时,节点之间不能 ...

  5. 对表白墙wxss的解释

    一.index.wxss 1 /* 信息 */ 2 .Xinxi{ 3 display: flex; 4 flex-wrap: wrap; 5 margin: 0rpx 1%; 6 } 7 8 9 / ...

  6. .NET 7 RC1 正式发布

    从年初2 月份发布第一个预览版,经历7个预览版后,Microsoft 西雅图时间9月14日发布了 .NET 7 RC 1:https://devblogs.microsoft.com/dotnet/a ...

  7. (二)JPA 连接工厂、主键生成策略、DDL自动更新

    (一)JPA的快速入门 2.JPA连接工厂 通过之前的 代码 实现已经清楚的发现了整个的JPA实现步骤,但是这个步骤似乎有一些繁琐了,毕竟最终所关心的一定是EntityManager对象实例,而要想获 ...

  8. kubectl top命令

    kubectl top命令可显⽰节点和Pod对象的资源使⽤信息,它依赖于集群中的资源指标API来收集各项指标数据.它包含有node和pod两个⼦命令,可分别⽤于显⽰Node对象和Pod对象的相关资源占 ...

  9. CentOS7下的lvm(逻辑卷)在线扩容

    扩展前该lvm分区为14GB 关闭系统,给sdb硬盘扩展6GB,然后重新进入CentOS.(或者是原有磁盘还有剩余未使用的空间) 对sdb进行分区: [root@converter ~]# fdisk ...

  10. Beats:通过Metricbeat实现外部对Elastic Stack的监控