前端開發中非同步請求是非常常見的事情,比如遠端讀取,呼叫後端介面等等,在vue2
中判斷非同步狀態是一件必要的事情,但是這些狀態都要自己處理,於是在3中提供了suspense函式
suspense
中文含義是懸念的意思
suspense
是有兩個template
插槽的,第乙個default
代表非同步請求完成後,顯示的模板內容。fallback
代表在載入中時,顯示的模板內容。
寫乙個非同步請求載入顯示的元件
}<
/h1>
<
/template>
"ts"
>
import
from
'vue'
export
default
definecomponent()
},3000)}
)}})
<
/script>
使用時
>
<
async
-show /
>
<
/template>
loading !
...<
/h1>
<
/template>
<
/suspense>
用async...await
的寫法,它是promise
的語法糖。建議你在工作中也盡量的使用async...await
的寫法。
suspense
也是支援async...await
的語法的,所以這個元件就用async
的寫法來寫。
/>
<
/template>
import axios from
"axios"
;export
default;}
,};<
/script>
suspense 中可以新增多個非同步元件
>
#default
>
/>
/>
template
>
#fallback
>
>
loading !...h1
>
template
>
suspense
>
在非同步請求中必須要作的一件事情,就是要捕獲錯誤,因為我們沒辦法後端給我們返回的結果,也有可能服務不通,所以一定要進行捕獲異常和進行處理。
在vue3.x的版本中,可以使用onerrorcaptured這個鉤子函式來捕獲異常。在使用這個鉤子函式前,需要先進行引入.
import
from
"vue"
;
有了onerrorcaptured就可以直接在setup()函式中直接使用了。鉤子函式要求我們返回乙個布林值,代表錯誤是否向上傳遞,我們這裡返回了true。
,setup()
)return;}
,};寫好後,我們故意把請求位址寫錯,然後開啟瀏覽器的終端,看一下控制台已經捕獲到錯誤了。在實際工作中,你可以根據你的真實需求,處理這些錯誤。
vue3新增Suspense元件
在開始介紹vue的suspense元件之前,我們有必要先了解一下react的suspense元件,因為他們的功能類似。react 16.6 新增了元件,讓你可以 等待 目標 載入,並且可以直接指定乙個載入的介面 像是個 spinner 讓它在使用者等待的時候顯示 const profilepage ...
Vue 四 vue router(非同步請求)
在實際的應用開發中,與後端互動,進行非同步請求是很常見的需求 npm i axios home.vue home vue cli 提供了乙個內建基於 node 的 webserver 我們可以使用它提供的 proxy 服務來進行跨域請求 在專案的根目錄下建立乙個 vue.config.js 的檔案,...
vue使用axios實現非同步請求
首先,安裝axios和qs 然後,在main.js中引入 import axios from axios import qs from qs vue.prototype.axios axios todo 這裡qs怎麼全域性引入?我是前端小白。在vue.config.js下,module.export...