zoukankan      html  css  js  c++  java
  • vue中我改变了data中的一个值,但现在视图上没有实时更新,请问我怎么拿到更新后的值?

    • Vue在数据初始化的时候会对data,computed,watcher中的属性进行依赖收集,如果支持proxy,则直接使用proxy进行拦截,好处是可以深层次的进行拦截,如果不支持proxy,则使用object.defineProperty来进行数据拦截依赖收集。但是object.defineProperty无法做到深层次的监听,所以对属性进行递归算法去实现依赖收集,如果在初始化没有将属性收集进去,则很有可能没有收集到依赖,这种情况则需要使用$set, 在$set中重新进行依赖收集。    
    • 还有一种情况是直接操作数组的下标,也不会发生dom更新,其实vue对数组的push, pop,unshift, shift,splice,sort,reverse这几个方法进行了重新定义,如果使用这几个方法对数组进行操作,是可以监听到数据变化的。    
    • 还有一种,就是你的数据变更在dom挂载之前,比如,数组要放到一个容器里渲染,可是容器还没有挂载出来。导致找不到dom,这种情况就需要使用$nextTick。
  • 相关阅读:
    Vim的分屏功能
    vim简明教程
    trk压力测试工具(测试tcp)
    浅谈ThreadPool 线程池
    压力测试的概念
    wrk 网站压力测试
    windows下vim中文乱码处理
    java 新创建的类要重写的方法
    多线程代码示例
    System.out.print实现原理猜解
  • 原文地址:https://www.cnblogs.com/guwufeiyang/p/13875717.html
Copyright © 2011-2022 走看看