vue3 Suspense 非同步請求元件使用

2021-10-20 22:29:04 字數 1850 閱讀 3331

前端開發中非同步請求是非常常見的事情,比如遠端讀取,呼叫後端介面等等,在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...