vue中的ajax請求一般放在「created」週期中,好處:1、能更快取得到服務端數據,減少頁面loading時間;2、有助於一致性,因為ssr不支持beforeMount、mounted鉤子函數。
本教學操作環境:windows7系統、vue2.9.6版,DELL G3電腦。
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更新之後,虛擬dom重新渲染之前被呼叫。在這個鉤子可以修改vm.data更新之後,虛擬dom重新渲染之前被呼叫。在這個鉤子可以修改vm.data更新之後,虛擬dom重新渲染之前被呼叫。在這個鉤子可以修改vm.data,並不會觸發附加的沖渲染過程。
updated:虛擬dom重新渲染後調用,若再次修改$vm.data,會再次觸發beforeUpdate、updated,進入死循環。
beforeDestroy:實例被銷毀前調用,也就是說在這個階段還是可以呼叫實例的。
destroyed:實例被銷毀後調用,所有的事件監聽器已被移除,子實例被銷毀
ajax放在vue的哪個生命週期?
一般在,created,mounted 中都可以發送資料請求,但是,大部分時候,會在created發送請求。
Created的使用場景:如果頁面首次渲染的就來自後端資料。因為,此時data已經掛載到vue實例了。
在created(如果希望首次選的資料來自於後端,就在此處發送請求)(只發了非同步請求,渲染是在後端回應之後才進行的)、beforeMount、mounted(在mounted中發請求會進行二次渲染) 這三個鉤子函數中進行呼叫。
因為在這三個鉤子函數中,data 已經創建,可以將服務端端傳回的資料進行賦值。但最常用的是在created 鉤子函數中呼叫非同步請求,因為在created 鉤子函數中呼叫非同步請求
好處:
第一點:能更快取得到服務端數據,減少頁面loading 時間;
第二點:放在created 中有助於一致性,因為ssr 不支援beforeMount 、mounted 鉤子函數。
【相關推薦:vue.js教學】
以上是vue中的ajax一般放在哪個生命週期中的詳細內容。更多資訊請關注PHP中文網其他相關文章!