由于 JavaScript 的限制,Vue 不能检测以下变动的数组: 当你利用索引直接设置一个项时,例如:vm.items[indexOfItem] = newValue 当你修改数组的长度时,例如:vm.items.length = newLength

因为vue的响应式是通过 Object.defineProperty 来实现的,但是数组的length属性是不能添加getter和setter,所有无法通过观察length来判断。

如下代码,虽然看起来数组的length是10,但是for in的时候只能遍历出0, 1, 2,导致了只有前三个索引被加上了getter 和setter

var a = [0, 1, 2]
a.length = 10
// 只是显示的给length赋值,索引3-9的对应的value也会赋值undefined
// 但是索引3-9的key都是没有值的
// 我们可以用for-in打印,只会打印0,1,2
for (var key in a) {console.log(key) // 0,1,2
}

vue 不能监测数组长度变化length的原因相关推荐

  1. JS全排列bug数组长度属性length和实际显示长度不相符

    @JS全排列bug数组长度属性length和实际显示长度不相符 function permutation(arr) {let arr1 = [].concat(arr);let result = [] ...

  2. Java中二维数组长度(length)

    二维数组中 数组名.length 是返回二维数组的行数 数组名[行下标].length 是返回二维数组该行的列数 实例: 定义一个二维数组并赋值 int b[][] = new int[][] {{1 ...

  3. 函数中使用sizeof(arr) / sizeof(arr[0])求数组长度不正确的原因

    参考文章:c中自定义函数通过sizeof来输出数组的长度为何不正确?[原创] 错误原因 我们可以使用sizeof(arr) / sizeof(arr[0])求数组长度,但是要注意:sizeof()函数 ...

  4. 为什么defineProperty不能检测到数组长度的“变化”

    目录 对象的属性类型 数组长度与索引 vue对数组方法的hack 属性类型 我们知道对象是一个无序属性集合,创建一个包含属性的对象有3种方式: 构造函数 字面量 defineProperty var ...

  5. jq linux获取数组长度,数组长度用size还是length

    数组长度用length属性.length是js的原生方法,可获取元素的个数和对象的长度:而size()函数是jQuery方法,只能作用于对象上,用于返回当前jQuery对象封装的元素个数.获取一个数组 ...

  6. Java-Runoob-高级教程-实例-数组:03. Java 实例 – 获取数组长度-*

    ylbtech-Java-Runoob-高级教程-实例-数组:03. Java 实例 – 获取数组长度 1.返回顶部 Java 实例 - 获取数组长度  Java 实例 本文我们将为大家介绍如何使用数 ...

  7. vue中通过arr.length获取数组长度报错:Error in render: “TypeError: Cannot read property ‘length‘ of undefined“

    刚开始是通过arr.length获取数组长度的! 结果控制台报错: Error in render: "TypeError: Cannot read property 'length' of ...

  8. vue中检测对象和数组值变化的问题

    今天工作中遇到改变vue  data中某个对象的值,却无法触发视图更新的问题.看了看官方文档,怎么解决的呢? 1.检测对象的变化 受现代 JavaScript 的限制(以及废弃 Object.obse ...

  9. vue 获取数组长度_Vue数据响应式

    响应式是一种设计模式. 页面响应式布局就是根据页面缩放大小调整布局,数据响应式就是代码根据数据变化作出反应. 深入响应式原理 - Vue.js​cn.vuejs.org 简单来说,当我们把一个 Jav ...

最新文章

  1. tomcat配置文件修改
  2. python中lambda函数_python中的lambda函数用法
  3. 挖矿为什么要用显卡_数字货币行情分析 2020/07/17 为什么大佬们都转向显卡挖矿了?...
  4. 利用jenkins的api来完成相关工作流程的自动化
  5. 吃冰淇淋更容易溺水?
  6. CSMA/CD协议(一目了然,看过都说好)
  7. VisualStudio2005技巧集合--打造自己的CodeSnippet
  8. Python 3.x对.CSV数据按任意行、列读取
  9. 海洋工作室——网站建设专家:只有十句话,看了十分钟(完整版)[不应该只看十分钟!!!]...
  10. Docker镜像下载到本地及恢复
  11. 机器码、序列号、认证码、注册码的生成算法(三)
  12. usb redirector linux,USB Redirector Client详细使用教程
  13. GitHub下载指定文件或文件夹
  14. 吉林省教育学院学报杂志社吉林省教育学院学报编辑部2022年第9期目录
  15. mac 清理 -OmniDiskSweeper
  16. 深入理解JAVA中的跨包继承
  17. 计算机软件工作室起名'',半永久工作室名字大全
  18. 王者服务器维修2019年四月份,王者荣耀2019年4月新皮肤有哪些?4月新皮肤什么时候出...
  19. mybatis-plus快速入门,手把手搭建mybatis-plus第一个项目
  20. MongoDb之TTL索引

热门文章

  1. jquery隐藏表格行
  2. C/C++中Static的作用详述
  3. 启用Windows 7/2008 R2 XPS Viewer
  4. 原来CASTLE RC2 还不支持IBATIS 1.6,郁闷了很久
  5. css之命名规范 BEM
  6. SSM-Spring-19:Spring中JdbcTemplate
  7. [MySQL Reference Manual] 7 备份和恢复
  8. MATLAB中文件的读写和数据的导入导出
  9. Java面试题技术类一
  10. Centos6.3下利用changepassword修改samba账户密码