Vue2中使用 Object.defineProperty() 来进行数据劫持有什么缺点?

在对一些属性进行操作时,使用这种方法无法拦截,比如通过下标方式修改数组数据或者给对象新增属性,这都不能触发组件的重新渲染,因为 Object.defineProperty 不能拦截到这些操作。更精确的来说,对于数组而言,大部分操作都是拦截不到的,只是 Vue 内部通过重写函数的方式解决了这个问题。

在 Vue3.0 中已经不使用这种方式了,而是通过使用 Proxy 对对象进行代理,从而实现数据劫持。使用Proxy 的好处是它可以完美的监听到任何方式的数据改变,唯一的缺点是兼容性的问题,因为 Proxy 是 ES6 的语法。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-26 16:42:06       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-26 16:42:06       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-26 16:42:06       87 阅读
  4. Python语言-面向对象

    2024-03-26 16:42:06       96 阅读

热门阅读

  1. arthas查看方法返回值

    2024-03-26 16:42:06       39 阅读
  2. Leetcode 41. 缺失的第一个正数

    2024-03-26 16:42:06       41 阅读
  3. centos7的docker安装的mongo,怎么设置账号密码

    2024-03-26 16:42:06       42 阅读
  4. C/C++中的Static关键字

    2024-03-26 16:42:06       38 阅读
  5. HashMap

    HashMap

    2024-03-26 16:42:06      37 阅读
  6. C#.NET 与 Python 交互

    2024-03-26 16:42:06       45 阅读
  7. HTTP 状态码及分类

    2024-03-26 16:42:06       41 阅读
  8. 3.25C++

    3.25C++

    2024-03-26 16:42:06      41 阅读
  9. 蓝桥杯day13刷题日记

    2024-03-26 16:42:06       36 阅读
  10. python OpenCV的使用

    2024-03-26 16:42:06       39 阅读