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


Posted in Javascript onJuly 20, 2018

具体代码如下所示:

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中的异步组件函数实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
在jQuery1.5中使用deferred对象 着放大镜看Promise
Mar 12 Javascript
一款Jquery 分页插件的改造方法(服务器端分页)
Jul 11 Javascript
iframe 上下滚动条如何默认在下方实现原理
Dec 10 Javascript
jQuery 获取URL的GET参数值的小例子
Apr 18 Javascript
jquery特效 幻灯片效果示例代码
Jul 16 Javascript
JS获取select-option-text_value的方法
Dec 26 Javascript
jquery easyui中treegrid用法的简单实例
Feb 18 Javascript
Angular用来控制元素的展示与否的原生指令介绍
Jan 07 Javascript
js实现温度计时间样式代码分享
Aug 21 Javascript
jQuery基于扩展简单实现倒计时功能的方法
May 14 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
Dec 07 Javascript
jQuery EasyUI Draggable拖动组件
Mar 01 Javascript
vue 中的keep-alive实例代码
Jul 20 #Javascript
Angularjs实现页面模板清除的方法
Jul 20 #Javascript
搭建vue开发环境
Jul 19 #Javascript
jQuery实现表单动态添加数据并提交的方法
Jul 19 #jQuery
微信小程序项目实践之九宫格实现及item跳转功能
Jul 19 #Javascript
js调用设备摄像头的方法
Jul 19 #Javascript
微信小程序定位当前城市的方法
Jul 19 #Javascript
You might like
繁体中文转换为简体中文的PHP函数
2006/10/09 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
通过jquery实现tab标签浏览效果
2007/02/20 Javascript
JavaScript获取多个数组的交集简单实例
2013/11/11 Javascript
jquery原创弹出层折叠效果点击折叠弹出一个层
2014/03/12 Javascript
基于socket.io和node.js搭建即时通信系统
2014/07/30 Javascript
深入浅析javascript中的作用域(推荐)
2016/07/19 Javascript
在 Node.js 中使用原生 ES 模块方法解析
2017/09/19 Javascript
AngularJs 终极购物车(实例讲解)
2017/11/08 Javascript
vue项目tween方法实现返回顶部的示例代码
2018/03/02 Javascript
深入理解JavaScript的async/await
2018/08/05 Javascript
Node批量爬取头条视频并保存方法
2018/09/20 Javascript
浅谈vue引用静态资源需要注意的事项
2018/09/28 Javascript
layui 上传文件_批量导入数据UI的方法
2019/09/23 Javascript
vue中使用element ui的弹窗与echarts之间的问题详解
2019/10/25 Javascript
在Vue中使用Echarts实例图的方法实例
2020/10/10 Javascript
javascript实现放大镜功能
2020/12/09 Javascript
教你用 Python 实现微信跳一跳(Mac+iOS版)
2018/01/04 Python
Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能
2018/01/11 Python
python简单实现操作Mysql数据库
2018/01/29 Python
浅析python3中的os.path.dirname(__file__)的使用
2018/08/30 Python
把pandas转换int型为str型的方法
2019/01/29 Python
运用PyTorch动手搭建一个共享单车预测器
2019/08/06 Python
Python使用python-docx读写word文档
2019/08/26 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
2020/02/19 Python
opencv 图像腐蚀和图像膨胀的实现
2020/07/07 Python
python 调用Google翻译接口的方法
2020/12/09 Python
Python实现钉钉/企业微信自动打卡的示例代码
2021/02/02 Python
Css3圆角边框制作代码
2015/11/18 HTML / CSS
几道数据库的面试题或笔试题
2014/05/31 面试题
大学同学十年聚会感言
2014/02/21 职场文书
八一建军节演讲稿
2014/09/10 职场文书
鼋头渚导游词
2015/02/05 职场文书
Node.js实现断点续传
2021/06/23 Javascript
python 使用tkinter与messagebox写界面和弹窗
2022/03/20 Python
CSS 实现磨砂玻璃(毛玻璃)效果样式
2023/05/21 HTML / CSS