项目中遇到的异步

2019-07-11  本文已影响0人  A郑家庆

前言

我们在做项目的时候会遇到很多异步操作,但是不知道它们什么时候开始执行、它们执行的顺序以及使用场景,比如$nextTick、document.ready、window.onload,下面我们就一一开始讲解

document.ready和window.onload对比

页面加载完成有两种事件,一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件),而是onload,表示页面包含图片等文件在内的所有元素都加载完成。

区别
Dom文档加载步骤

$nextTick

Dom更新循环结束之后执行延迟回调,在修改数据之后立即使用这个方法,获取更新后的Dom,通过setTimeout(fn, 0)也可以同样获取到。

使用场景

在created、mounted阶段如果需要操作渲染后的视图,也要使用nextTick方法。
⚠️注意:官方文档说明:注意mounted不会承诺所有的子组件也都一起被挂载。如果你希望等到整个视图都渲染完毕,可以用vm.$nextTick替换掉mounted。

总结:settimeout、接口、异步都会有不同的线程控制,它们互不影响,所以它们也不会互相堵塞,但是有的线程是互斥的,比如js线程和GUI线程是互斥的

上一篇 下一篇

猜你喜欢

热点阅读