详述虚拟DOM中的diff算法
- 虚拟DOM对比时,会用到diff算法
- 当数据发生变化的时候就会被比对 要么改变了state 要么改变了props
- setState方法
同层比对,如果一致,那么继续比对第二层,如果比对一样,继续往下比对。
如果比对不一样,就不会网下比对了,不一样的用新的覆盖掉DOM节点,会造成重复节点的浪费, - 遍历key问题
- 假如数组中有五条数据,渲染到页面,然后生成五个虚拟DOM树,如果增加一个DOM数据,数据发生变化会生成新的虚拟DOM,俩个虚拟DOM的比对也就是上下进行比对匹配关系。每一个虚拟的DOM的节点没有一个key值,它就没有自己的名字,当我们在做俩个虚拟DOM树的比对的时候,我们需要做俩层循环的比较,这样比较很麻烦,当然也是很耗费性能的。
swiper获取数据、css都没有问题、但是图片不动
导致问题的原因
在swiper 初始化时,因为Ajax是一个异步,Ajax请求还没有完全完成的时候,所以导致swiper-wrapper、里面的内容是空的
一种: