自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

重新“定義”Vue 3的異步組件

開發(fā) 前端
在 Vue 3 中函數式組件均有普通函數來定義,所以異步組件需要通過 defineAsyncComponent 來進行顯式地定義。

[[426599]]

開門見山

依照慣例,首先從上帝視角看一下異步組件發(fā)生了什么改變:

  • 新增了一個方法:defineAsyncComponent,用來顯式地定義異步組件
  • component 選項改名:loader
  • Loader 函數不再接受 resolve 和 reject 作為參數,并且必須返回一個 Promise

[[426600]]

曾經的異步組件

在 Vue 2.x 中,定義一個異步組件還是很方便的:

  1. const asyncPage = () => import('./HugePageComponent.vue'); 

如果需要一些高級的用法(我賭五毛錢你不知道這個用法):

  1. import { ErrorComponent, LoadingComponent } from 'xxx'
  2. const asyncPage = { 
  3.   component: () => import('./HugePageComponent'), 
  4.   delay: 1000, 
  5.   timeout: 3000, 
  6.   error: ErrorComponent, 
  7.   loading: LoadingComponent, 

[[426601]]

即將到來的 Vue 3 異步組件

因為在 Vue 3 中函數式組件均有普通函數來定義,所以異步組件需要通過 defineAsyncComponent 來進行顯式地定義。

  1. import { defineAsyncComponent } from 'vue'
  2. import { ErrorComponent, LoadingComponent } from 'xxx'
  3.  
  4. // 常規(guī)用法 
  5. const asyncPage = defineAsyncComponent(() => import('./HugePageComponent')); 
  6.  
  7. // 高級用法 
  8. const asyncPageWithOptions = defineAsyncComponent({ 
  9.   // 這里之前是 component,現在改叫 loader 了  
  10.   loader: () => import('./HugePageComponent'), 
  11.   delay: 1000, 
  12.   timeout: 3000, 
  13.   errorComponent: ErrorComponent, 
  14.   loadingComponent: LoadingComponent, 
  15. }); 

[[426602]]

另外,和 Vue 2.x 不同的是,loader 函數不再提供 resolve 和 reject 作為默認參數了,而且必須返回一個 Promise:

  1. // 2.x 版本 
  2. const oldAsyncComponent = (resolve, reject) => { 
  3.   /* ... */ 
  4.  
  5. // 3.x 版本 
  6. const newAsyncComponent = defineAsyncComponent( 
  7.  () => { 
  8.     return new Promise((resolve, reject) => { 
  9.       /* ... */ 
  10.     }); 
  11.   } 
  12. ); 

如果想更深入的了解 Vue 3 的異步組件,請移步:https://v3.vuejs.org/guide/migration/async-components.html#_3-x-syntax(目前還沒有中文版)。

本文轉載自微信公眾號「劉凱里」,可以通過以下二維碼關注。轉載本文請聯系劉凱里公眾號。

 

 

責任編輯:武曉燕 來源: 劉凱里
相關推薦

2021-05-18 07:51:37

Suspense組件Vue3

2024-08-13 09:26:07

2023-04-26 15:17:33

Vue 3開發(fā)前端

2024-03-13 08:37:18

Vue3Suspense異步組件

2022-04-26 05:55:06

Vue.js異步組件

2020-12-01 08:34:31

Vue3組件實踐

2020-09-17 07:08:04

TypescriptVue3前端

2021-11-30 08:19:43

Vue3 插件Vue應用

2023-04-27 11:07:24

Setup語法糖Vue3

2024-07-10 08:39:49

2023-04-02 10:06:24

組件vue3sign2.

2023-12-19 16:50:37

2023-06-28 08:05:46

場景vue3自定義

2021-01-20 15:59:14

開發(fā)Vue組件庫

2023-04-19 15:29:53

通信技巧Vue 3開發(fā)

2022-05-06 08:47:10

Vue 3組件前端

2024-08-07 10:16:00

2021-10-29 07:47:35

Vue 3teleport傳送門組件

2022-07-29 11:03:47

VueUni-app

2020-03-25 18:23:07

Vue2Vue3組件
點贊
收藏

51CTO技術棧公眾號