Vue生命週期
beforeCreate(創建前): 在數據觀測和初始化事件還未開始,data、watcher、methods都還不存在,但是$route已存在,可以根據路由信息進行重定向等操作。
created(創建後):在實例創建之後被調用,該階段可以訪問data,使用watcher、events、methods,也就是說 數據觀測(data observer) 和event/watcher 事件配置 已完成。但是此時dom還沒有被掛載。該階段允許執行http請求操作。
beforeMount (掛載前):將HTML解析生成AST節點,再根據AST節點動態生成渲染函數。相關render函數首次被調用(劃重點)。
mounted (掛載後):在掛載完成之後被調用,執行render函數生成虛擬dom,創建真實dom替換虛擬dom,並掛載到實例。可以操作dom,比如事件監聽
beforeUpdate:vm.data,並不會觸發附加的衝渲染過程。
updated:虛擬dom重新渲染後調用,若再次修改$vm.data,會再次觸發beforeUpdate、updated,進入死循環。
beforeDestroy:實例被銷燬前調用,也就是說在這個階段還是可以調用實例的。
destroyed:實例被銷燬後調用,所有的事件監聽器已被移除,子實例被銷燬。
Vue在哪個生命週期階段調用異步請求最佳
異步請求在哪個階段都可以調用,因爲會先執行完生命週期的鉤子函數之後,纔會執行異步函數,但如果考慮用戶體驗方面的話,在created中調用異步請求最佳,用戶就越早感知頁面的已加載,畢竟越早獲取數據,在mounted實例掛載的時候就越及時。