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

posted @ 2021-12-11 21:15  方寸间  阅读(1169)  评论(1编辑  收藏  举报