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 相关文章推荐
获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
Feb 14 Javascript
jquery自定义类似$.ajax()的方法实现代码
Aug 13 Javascript
javascript中typeof的使用示例
Dec 19 Javascript
jQuery异步加载数据并添加事件示例
Aug 24 Javascript
jQuery使用removeClass方法删除元素指定Class的方法
Mar 26 Javascript
JS实现隐藏同级元素后只显示JS文件内容的方法
Sep 04 Javascript
判断数组的最佳方法(推荐)
Oct 11 Javascript
详解AngularJS通过ocLazyLoad实现动态(懒)加载模块和依赖
Mar 01 Javascript
vue项目优化之通过keep-alive数据缓存的方法
Dec 11 Javascript
angular6的table组件开发的实现示例
Dec 26 Javascript
js实现轮播图效果 z-index实现轮播图
Jan 17 Javascript
JavaScript 面向对象程序设计详解【类的创建、实例对象、构造函数、原型等】
May 12 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 discuz 主题表和回帖表的设计
2009/03/13 PHP
php调用mysql存储过程实例分析
2014/12/29 PHP
深入研究PHP中的preg_replace和代码执行
2018/08/15 PHP
JavaScript 中的replace方法说明
2007/04/13 Javascript
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
2010/12/28 Javascript
jquery实现漂浮在网页右侧的qq在线客服插件示例
2013/05/13 Javascript
Jquery chosen动态设置值实例介绍
2013/08/08 Javascript
JS中引用百度地图并将百度地图的logo和信息去掉
2013/09/29 Javascript
javascript 闭包详解
2015/07/02 Javascript
jQuery实现图片左右滚动特效
2020/04/20 Javascript
学习JavaScript鼠标响应事件
2015/12/25 Javascript
基于Bootstrap的后台管理面板 Bootstrap Metro Dashboard
2016/06/17 Javascript
js实现导航栏中英文切换效果
2017/01/16 Javascript
nginx配置React静态页面的方法教程
2017/11/03 Javascript
javaScript手机号码校验工具类PhoneUtils详解
2017/12/08 Javascript
vscode中vue-cli项目es-lint的配置方法
2018/07/30 Javascript
发布一款npm包帮助理解npm的使用
2019/01/03 Javascript
微信小程序如何利用getCurrentPages进行页面传值
2019/07/01 Javascript
Vue组件简易模拟实现购物车
2020/12/21 Vue.js
[29:10]Ti4 冒泡赛第二天 NEWBEE vs Titan 3
2014/07/15 DOTA
python基于xml parse实现解析cdatasection数据
2014/09/30 Python
Python中计算三角函数之cos()方法的使用简介
2015/05/15 Python
搞笑的程序猿:看看你是哪种Python程序员
2015/06/12 Python
Python 制作糗事百科爬虫实例
2016/09/22 Python
python中的decorator的作用详解
2018/07/26 Python
python生成多个只含0,1元素的随机数组或列表的实例
2018/11/12 Python
Python第三方包之DingDingBot钉钉机器人
2020/04/09 Python
opencv python 对指针仪表读数识别的两种方式
2021/01/14 Python
css3加js做一个简单的3D行星运转效果实例代码
2017/01/18 HTML / CSS
AOP的定义以及作用
2013/09/08 面试题
Does C# support multiple inheritance? (C#支持多重继承吗)
2012/01/04 面试题
计算机相关的自我评价
2014/01/15 职场文书
设计师个人求职信范文
2014/02/02 职场文书
如何写辞职书
2015/02/26 职场文书
Golang生成Excel文档的方法步骤
2021/06/09 Golang
Python可视化学习之matplotlib内置单颜色
2022/02/24 Python