created与mounted执行顺序(关于微任务与宏任务)

1.ps:只要你只使用created或者mounted中的一个不就好了吗【dog】。这样只要在第一个异步任务代码跳出前,嵌套第二个任务函数就好了

最后面的两个链接一个是微任务与宏任务的通俗例子,一个是详解
export default {
 
  created() {
 
    console.log(1)
 
    this.printNum()
 
    console.log(3)
 
  },
 
  mounted() {
 
    console.log(4)
 
  },
 
 methods: {
 
    printNum() {
 
      setTimeout(() => {
 
        console.log(2)
 
      }, 100)
 
    }
 
  }
 
}
 

结果是:1 3 4 2
所以并不是mounted要等到created中所有的代码执行结束后才执行

后来查看资料才知道,他们的执行顺序是:created中的同步任务–mounted中的同步任务–created中的异步任务–mounted中的异步任务

这里异步的执行也遵循微任务与宏任务的执行顺序

如果只是比较他们的执行顺序的话,不用考虑太多created与mounted,他们可以理解为将created与mounted放在一起,只是created放在上面,mounted放下面的代码顺序,然后按正常执行顺序执行

2、PS:js是单线程,会先执行同步任务,异步任务在一定时间执行完成后,进入任务队列,所有同步任务执行完成后执行任务队列,如果在created中有异步任务,想让它比mounted中的同步任务先执行,需要给mounted中的同步任务设置setTimeout,超时时间注意要比created中的异步任务时间长

————————————————
版权声明:本文为CSDN博主「weixin_50576800」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_50576800/article/details/117600153

微任务与宏任务的例子https://www.cnblogs.com/jiasm/p/9482443.html

js中的宏任务与微任务详解https://zhuanlan.zhihu.com/p/78113300

你可能感兴趣的:(Vue.js,2.0,基础,javascript,vue.js)