最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

Vue中的异步组件函数实现代码

来源:懂视网 责编:小采 时间:2020-11-27 22:11:10
文档

Vue中的异步组件函数实现代码

Vue中的异步组件函数实现代码:具体代码如下所示: export default new Router({ routes: [ { path: '/live', name: 'live', component: () => import('@/view/live/live.vue') } ] }) 上面的代码是很常见的router代码分割,只在代码路由为live才会去加载
推荐度:
导读Vue中的异步组件函数实现代码:具体代码如下所示: export default new Router({ routes: [ { path: '/live', name: 'live', component: () => import('@/view/live/live.vue') } ] }) 上面的代码是很常见的router代码分割,只在代码路由为live才会去加载

具体代码如下所示:

export default new Router({
 routes: [
 {
 path: '/live',
 name: 'live',
 component: () => import('@/view/live/live.vue')
 }
 ]
})

上面的代码是很常见的router代码分割,只在代码路由为live才会去加载live.vue

但这样在live.vue获取的过程将是一片空白,什么也没有,体验不好, 利用vue提供的异步组建可以解决

新建一个 loadable.vue

<template>
 <index></index>
</template>
<script>
 import LoadingComponent from './load.vue' // LoadingComponents是 live.vue为获取前展示的内容
 export default {
 components: {
 index: () => ({
 component: import('@/view/live/live.vue'),
 // 异步组件加载时使用的组件
 loading: LoadingComponent,
 // 展示加载时组件的延时时间。默认值是 200 (毫秒)
 delay: 200,
 // 如果提供了超时时间且组件加载也超时了,
 // 则使用加载失败时使用的组件。默认值是:`Infinity`
 timeout: 3000
 })
 }
 }
</script>

然后修改router.js

export default new Router({
 routes: [
 {
 path: '/live',
 name: 'live',
 component: import('loadable.vue')
 }
 ]
})

这样在获取到live.vue之前就会有自定义的loading展示了

但是路由很多, 我们不可能每个路由都写一个 loadable.vue, 所以编写一个函数来解决

新建一个 loadable.js

import LoadingComponent from './load.vue'
export default (asyncComponent) => {
 const Com= () => ({
 // 这里vue官网可以知道具体有哪些参数可以设置
 // https://cn.vuejs.org/v2/guide/components-dynamic-async.html#%E5%A4%84%E7%90%86%E5%8A%A0%E8%BD%BD%E7%8A%B6%E6%80%81
 component: asyncComponent(),
 loading: LoadingComponent
 })
 return {
 render (h) {
 return h(Com, {})
 }
 }
}

然后修改一下router.js

import loadable from 'loadable.js'
export default new Router({
 routes: [
 {
 path: '/live',
 name: 'live',
 component: loadable (() => import('@/view/live/live.vue'))
 }
 ]
})

这样一个极简的vue异步函数就完成了

总结

以上所述是小编给大家介绍的Vue中的异步组件函数实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

Vue中的异步组件函数实现代码

Vue中的异步组件函数实现代码:具体代码如下所示: export default new Router({ routes: [ { path: '/live', name: 'live', component: () => import('@/view/live/live.vue') } ] }) 上面的代码是很常见的router代码分割,只在代码路由为live才会去加载
推荐度:
标签: VUE 代码 异步组件
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top