今天遇到一個bug,在mounted中調用的方法需要用到一個data中的數據。
在created中axios訪問后台數據並賦值給data中變量,但data並沒有拿到

在不同位置進行控制台打印,發現執行順序不完全是按照上下順序執行的。
原因是axios發送異步請求,每個請求接收到反饋的時間總不相同。
解決方法是將要控制順序在axios后的語句寫在axios.then中,就能確保數據返回之后執行。
再記錄一下各個方法執行的順序
在頁面首次加載執行順序有如下:
beforeCreate //在實例初始化之后、創建之前執行
created //實例創建后執行
beforeMounted //在掛載開始之前調用
filters //掛載前加載過濾器
computed //計算屬性
directives-bind //只調用一次,在指令第一次綁定到元素時調用
directives-inserted //被綁定元素插入父節點時調用
activated //keek-alive組件被激活時調用,則在keep-alive包裹的嵌套的子組件中觸發
mounted //掛載完成后調用
{{}} //mustache表達式渲染頁面
修改頁面input時,被自動調用的選項順序如下:
watch //首先先監聽到了改變事件
filters //過濾器沒有添加在該input元素上,但是也被調用了
beforeUpdate //數據更新時調用,發生在虛擬dom打補丁前
directived-update //指令所在的組件的vNode更新時調用,但可能發生在其子vNode更新前
directives-componentUpdated//指令所在的組件的vNode及其子組件的vNode全部更新后調用
updated //組件dom已經更新
組件銷毀時,執行順序如下
beforeDestroy //實例銷毀之前調用
directives-unbind //指令與元素解綁時調用,只調用一次
deactivated //keep-alive組件停用時調用
destroyed //實例銷毀之后調用
參考:
https://blog.csdn.net/qq_21223653/article/details/106525138
