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

vue 获取数组长度_Vue数据响应式响应式是一种设计模式 页面响应式布局就是根据页面缩放大小调整布局 数据响应式就是代码根据数据变化作出反应 深入响应式原理 Vue js cn vuejs org 简单来说 当我们把一个 JavaScript 对象传入 Vue 实例作为 data 选项时 Vue 将遍历此对象所有的 property 使用 Object defineProper 把这些 property 全部转为 getter sette

响应式是一种设计模式。

页面响应式布局就是根据页面缩放大小调整布局,数据响应式就是代码根据数据变化作出反应

深入响应式原理 — Vue.js​cn.vuejs.org

61be9037e0d7dee129bf7bf12a90f851.png

简单来说,当我们把一个 JavaScript 对象传入 Vue 实例作为data选项时,Vue将遍历此对象所有的 property,使用Object.defineProperty把这些 property 全部转为getter/setter,并将property记录为依赖。 Vue 追踪这些依赖,在其被访问和修改时通知变更。

具体实现:

每个组件实例都对应一个
watcher 实例,它会在组件渲染的过程中把“接触”过的数据 property 记录为依赖。之后当依赖项的 setter 触发时,会通知 watcher,从而使它关联的组件重新渲染。

10d6fe64fef19e142068279aa27e395b.png

注意:

由于 JavaScript 的限制,Vue不能检测数组和对象的变化。

  • 对象:Vue 无法检测 property 的添加或移除。
var vm = new Vue({ data:{ a:1, someObject:{} } }) // `vm.a` 是响应式的 vm.b = 2 // `vm.b` 是非响应式的

我们无法动态添加根级别的响应式 property。但是可以使用 Vue.set(object, propertyName, value) 方法向嵌套对象添加响应式 property。

Vue.set(vm.someObject, 'b', 2) //或者 vm.$set(vm.someObject,'b',2)// vm.$set 实例方法是全局 Vue.set 方法的别名

  • 数组:Vue 不能检测以下数组的变动:
    • 当你利用索引直接设置一个数组项时,例如:vm.items[indexOfItem] = newValue
    • 当你修改数组的长度时,例如:vm.items.length = newLength
var vm = new Vue({ data: { items: ['a', 'b', 'c'] } }) vm.items[1] = 'x' // 不是响应性的,解决:vm.$set(vm.items, indexOfItem, newValue) vm.items.length = 2 // 不是响应性的,解决:vm.items.splice(newLength)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222449.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午3:46
下一篇 2026年3月17日 下午3:47


相关推荐

  • linux ptrace函数

    linux ptrace函数【ptrace系统调用】功能描述:提供父进程观察和控制另一个进程执行的机制,同时提供查询和修改另一进程的核心影像与寄存器的能力。主要用于执行断点调试和系统调用跟踪。父进程可通过调用fork,接着指定所产生的子进程的PTRACE_TRACEME行为,最后使用exec等操作来初始化一个进程跟踪。可替代的做法是,父进程通过PTRACE_ATTACH请求跟踪一个现存进程的执行。当子进程

    2025年6月14日
    4
  • android sharedpreferences_android S

    android sharedpreferences_android Searly_suspend/late_resumeLCD显示屏是休眠了,触摸屏也休眠了,但是标准的Linux系统并没有进入休眠Android在标准的Linux休眠与唤醒机制上又加了一层,就是early_suspend/late_resume使用early_suspend()进行休眠的设备,它休眠的时刻早于其他设备,使用late_resume()唤醒的设备,它被唤醒的时刻要晚…

    2026年1月20日
    5
  • Linux配置静态IP地址「建议收藏」

    Linux配置静态IP地址「建议收藏」Linux配置静态IP地址

    2022年4月22日
    50
  • jenkins自定义构建参数_git怎么切换分支

    jenkins自定义构建参数_git怎么切换分支前言当我们的自动化项目越来越多的时候,在代码仓库会提交不同的分支来管理,在用jenkins来构建的时候,我们希望能通过参数化构建git仓库的分支。下载安装GitParameter插件系统管理-

    2022年7月31日
    64
  • 单臂路由实现原理

    单臂路由实现原理一 概述单臂路由 router on a stick 是指在路由器的一个接口上通过配置子接口 或 逻辑接口 并不存在真正物理接口 的方式 实现原来相互隔离的不同 VLAN 虚拟局域网 之间的互联互通 单臂路由的子接口路由器的物理接口可以被划分成多个逻辑接口 这些被划分后的逻辑接口被形象的称为子接口 值得注意的是这些逻辑子接口不能被单独的开启或关闭 也就是说 当物理接口被开启或关闭时 所有的该接口的子接口也随之被开启或关闭 优缺点 VLAN 能有效分割局域网 实现各网络区域之间的访问控制 但现实中 往往

    2026年3月19日
    3
  • 什么是AI智能体(agent)?一文读懂AI智能体:定义、分类与应用,程序员必备收藏指南!

    什么是AI智能体(agent)?一文读懂AI智能体:定义、分类与应用,程序员必备收藏指南!

    2026年3月12日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号