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