zoukankan      html  css  js  c++  java
  • Vue修改数组没有响应式更新

    由于 JavaScript 的限制,Vue 不能检测以下数组的变动:

    (1)当你利用索引直接设置一个数组项时,例如:vm.items[indexOfItem] = newValue

    (2)当你修改数组的长度时,例如:vm.items.length = newLength

    为了解决第一类问题,我列出了可以响应式更新的方法:

    (1)push:在数组后面添加数据

    this.list.push("ThinkPHP");
    //还可以添加多个
    this.list.push("ThinkPHP","node","Typescript");

    :push(...items),可以添加多个

    (2)unshift:在数组前面添加数据

    this.list.unshift("ThinkPHP");

    :unshift(...items),可以添加多个

    (3)pop:删除数组中最后一个元素

    this.list.pop();

    (4)shift:删除数组中第一个元素

    this.list.shift();

    (5)splice:删除元素 / 插入元素 / 替换元素

    语法结构:splice(start,length,value);

    //替换下标0的,数量1个,值是php7.2
    this.list.splice(0,1,"PHP7.2");
    
    //删除下标0的,数量1个
    this.list.splice(0,1);
    
    //新增在下标0的,数量0个,值是PHP7.2
    this.list.splice(0,0,"PHP7.2");

    注:替换或新增就取决于第二个参数,0新增,1替换;还有第三个value是...item,可以有多个

    (6)Vue.set

    语法结构:set("要修改的对象",索引值,修改后的值);

    //修改对象,下标,修改后的值
    Vue.set(this.list,0,"Vue2.0");
  • 相关阅读:
    VS2010中的单元测试
    GSM局数据制作2(Erision)
    WPF的BitmapImage的文件无法释放及内存泄露的问题
    跨库查询推荐使用的方法
    我们能做什么呢?
    长尾理论:Windows Vista
    Blackberry阻碍因素
    RIM终于想通了RIM开放新的API
    Prototype库终于有了文档了
    自己编写的MSN历史记录合并工具
  • 原文地址:https://www.cnblogs.com/bushui/p/12210143.html
Copyright © 2011-2022 走看看