异步组件

发布时间:2022-06-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了异步组件脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

以下是对变化的总体概述:

  • 新的 defineAsyncComponent 助手方法,用于显式地定义异步组件
  • 如果是一个带选项的复杂的异步组件,component 选项重命名为  loader
  • Loader 函数本身不再接收 resolve 和 reject 参数,且必须返回一个 Promise

在vue2中使用路由的时候,如果要减少程序的体积就要做异步路由的设定,我们使用的是import 这样的函数,该函数中把import的返回值作为一个函数的返回值直接返回

vue2中异步组件创建

const asyncModal = () => import('./Modal.vue')

或者,对于带有选项的更高阶的组件语法: 

const asyncModal = {
  component: () => import('./Modal.vue'),
  delay: 200,
  timeout: 3000,
  error: ErrorComponent,
  loading: LoadingComponent
}

在vue3中就有不同,要设置一个函数,这个函数要设置在defineAsyncComponent中

为了要和函数式组件区分开,不能声明两个都是函数,所以为了区分是异步组件还是函数式组件,就有了defineAsyncComponent函数

vue3中定义异步组件

 不带配置的异步组件

 app.vue

<template>
   <div>
   app
   <async></async>
   </div>
</template>

<script>
import {defineAsyncComponent} from "vue"
//不带配置的异步组件
export default{
   components:{
      //AsyncCom指定要加载的组件的名称,把defineAsyncComponent放进去尽可以定义一个异步组件了
      async:defineAsyncComponent(()=>import("./components/next.vue"))
   }
}
</script>

异步组件

 

 带配置项的异步组件,component改为loader

const AsyncComWithOptions=defineAsyncComponent({
  // 这里之前是compoent改为loader
  loader:()=>import ('./components/Nextpage'),
  delay:20,
  timeout:3000,
  error:ErrorCompoent,
  loading:LoadingComponent
})

与vue2不同的是,loader函数不再接收resolve和reject参数,且必须始终返回promise

 此时loader里面也可以这样写

 loader:()=>new Pomise((resolve,reject)=>{
    resolve({
      template:'<div>我是异步组件</div>'
    })
  }),

 

脚本宝典总结

以上是脚本宝典为你收集整理的异步组件全部内容,希望文章能够帮你解决异步组件所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: