详述虚拟DOM中的diff算法

  • 虚拟DOM对比时,会用到diff算法
  • 当数据发生变化的时候就会被比对 要么改变了state 要么改变了props
  • setState方法
    同层比对,如果一致,那么继续比对第二层,如果比对一样,继续往下比对。
    如果比对不一样,就不会网下比对了,不一样的用新的覆盖掉DOM节点,会造成重复节点的浪费,
  • 遍历key问题
  • 假如数组中有五条数据,渲染到页面,然后生成五个虚拟DOM树,如果增加一个DOM数据,数据发生变化会生成新的虚拟DOM,俩个虚拟DOM的比对也就是上下进行比对匹配关系。每一个虚拟的DOM的节点没有一个key值,它就没有自己的名字,当我们在做俩个虚拟DOM树的比对的时候,我们需要做俩层循环的比较,这样比较很麻烦,当然也是很耗费性能的。

Vue 面试题五 @酷酷的小航航

swiper获取数据、css都没有问题、但是图片不动

导致问题的原因

在swiper 初始化时,因为Ajax是一个异步,Ajax请求还没有完全完成的时候,所以导致swiper-wrapper、里面的内容是空的
一种:
在初始化swiper的时候加上俩个属性
observer:true 修改swiper 自己或子元素 自动初始化
obseverparents:true修改swiper的父元素 自动初始化

二种:
$nextTick页面上所有DOM元素渲染完毕后,在执行nextTick里面的回调

子组件能不能修改父组件传递过来的数据

子组件修改父组件传递过来的数据的俩种方式
第一种:子组件通过data修改父组件传递过来的数据,把传递过来的数据作为data中局部数据的

第二种:子组件通过computed计算属性来修改父组件传递过来的数据:

首先作为局部初始值

然后才能使用computed

相关文章:

  • 2022-01-10
  • 2021-04-23
  • 2021-09-01
  • 2021-11-30
  • 2021-11-03
  • 2021-12-15
  • 2022-01-07
  • 2021-12-12
猜你喜欢
  • 2021-06-12
  • 2021-08-03
  • 2021-12-05
  • 2021-04-02
  • 2021-11-18
  • 2021-12-23
  • 2021-11-28
  • 2021-04-22
相关资源
相似解决方案