zoukankan      html  css  js  c++  java
  • vue深度监听时有时会出现新旧值相同的现象——原因及解析

    1,数组或对象指针变化时会触发视图的重新渲染,

    2,数组使用vue变异方法时,因为vue对变异方法做了包装所以也能触发视图变化,

    3,使用vue.$set改变其属性也能触发视图渲染。

    原因在官方文档上有写明:

    注意:在变异 (不是替换) 对象或数组时,旧值将与新值相同,因为它们的引用指向同一个对象/数组。Vue 不会保留变异之前值的副本。

    1,可以得出以下猜测,watch监听的是数组或者对象的变动,非深度监听,无法监听属性变化,而深度监听时,数组或对象的任何变动都会导致指针的变化,变异时除外

    2,什么是对象和数组的变异:即object.difineporperty()无法监听到的数据变化(watch同样依赖于object.difineporperty());

      参考以下文档:

      数组变异方法和替换数组 https://blog.csdn.net/xie_qi_chao/article/details/104909859

      Vue源码解析之数组变异 https://www.cnblogs.com/karthuslorin/p/10045326.html

  • 相关阅读:
    ExtJs 4.0 ExtJs2.2 JavaScript
    C++中关于classview、resourceview、fileview
    BIN OBJ 区别
    数据编码
    多线程
    REST
    SQL Server 2005安装
    临时
    数据存储
    灰度直方图
  • 原文地址:https://www.cnblogs.com/wangtong111/p/12520128.html
Copyright © 2011-2022 走看看