博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue中检测数组改变
阅读量:6073 次
发布时间:2019-06-20

本文共 792 字,大约阅读时间需要 2 分钟。

有两种情况变动的数组,是VUE不能检测到的,也不会触发视图的更新。

  • 通过索引直接设置项
  • 修改数组的长度 
    
Document

数组更新

  • {
    {item.name}}

  这里,我想说的是第30行,注释那行,我正在验证数组变异的方法,所以30行和31行同时写上的,居然可以利用数组索引直接设置项,然后我就why?教程里说好的不能这样做的。。。

  后面注释了第31行,才没有设置成功的。这里,使用push()方法,改变数组也会触发视图更新,所以才导致了this.items[0] = {name: '改变数组第一个值'}这么做也能成功。

  以上,说明了我自己挖的这个坑的原因,那么,该怎么解决vue不能检测到通过索引直接设置项的问题呢,如下:

 第一种方法:

btnClick() {       this.$set(this.items, 0, {       name: '通过this.$set去改变值'   }}

 第二种方法:

btnClick() {       this.items.splice(0, 1, {       name: '通过splice去改变值'  }}

  第三种方法:

btnClick() {    this.items[0].name =  '改变数组第一个值'}

  那么,文章开头说的vue不能检测到修改数组长度,办法呢是用第二种中的splice()来解决。

转载于:https://www.cnblogs.com/ddkei/p/9362081.html

你可能感兴趣的文章
Express使用手记:核心入门
查看>>
话里话外:IT规划与企业战略的最佳匹配
查看>>
我的友情链接
查看>>
debian下LAMP+nginx代理+awstats+nagios+cacti(三)
查看>>
MySQL级联复制(A->B->C)
查看>>
OSI七层与TCP/IP五层网络架构详解
查看>>
linux挂载NTFS分区
查看>>
Linux运维文档之nginx
查看>>
nagios安装脚本
查看>>
怎样理解阻塞非阻塞与同步异步的区别?
查看>>
Java并发编程实战(chapter_2)(对象发布、不变性、设计线程安全类)
查看>>
函数指针与指针函数的区别
查看>>
函数_实例4_使用位置参数和函数返回结果
查看>>
高效学习LINUX内核
查看>>
json文件转excel表格
查看>>
RF learning~~
查看>>
new Date()设置日期在IOS的兼容问题
查看>>
jQuery最佳实践
查看>>
MSSQL修改列属性
查看>>
mysql 读写分离工具
查看>>