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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM