首頁  >  文章  >  web前端  >  vue中的ajax一般放在哪個生命週期中

vue中的ajax一般放在哪個生命週期中

青灯夜游
青灯夜游原創
2022-01-19 16:52:015979瀏覽

vue中的ajax請求一般放在「created」週期中,好處:1、能更快取得到服務端數據,減少頁面loading時間;2、有助於一致性,因為ssr不支持beforeMount、mounted鉤子函數。

vue中的ajax一般放在哪個生命週期中

本教學操作環境: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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn