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 相关文章推荐
如何让动态插入的javascript脚本代码跑起来。
Jan 09 Javascript
图片上传即时显示缩略图的js代码
May 27 Javascript
js中设置元素class的三种方法小结
Aug 28 Javascript
js取滚动条的尺寸的函数代码
Nov 30 Javascript
JSON+Jquery省市区三级联动
Jan 13 Javascript
自动化测试读写64位操作系统的注册表
Aug 15 Javascript
TypeScript入门-接口
Mar 30 Javascript
vue 页面加载进度条组件实例
Feb 05 Javascript
Vue中控制v-for循环次数的实现方法
Sep 26 Javascript
javascript中call,apply,callee,caller用法实例分析
Jul 24 Javascript
Vue实现boradcast和dispatch的示例
Nov 13 Javascript
vue实现Toast组件轻提示
Apr 10 Vue.js
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实现首页链接查询 友情链接检查的代码
2010/01/05 PHP
jquery cookie的用法总结
2013/11/18 Javascript
深入理解javascript中的立即执行函数(function(){…})()
2014/06/12 Javascript
NodeJS学习笔记之(Url,QueryString,Path)模块
2015/01/13 NodeJs
jquery实现浮动在网页右下角的彩票开奖公告窗口代码
2015/09/04 Javascript
javascript的函数劫持浅析
2016/09/26 Javascript
jQuery UI Grid 模态框中的表格实例代码
2017/04/01 jQuery
js实现QQ面板拖拽效果(慕课网DOM事件探秘)(全)
2017/09/19 Javascript
WebPack配置vue多页面的技巧
2018/05/15 Javascript
vue使用ElementUI时导航栏默认展开功能的实现
2018/07/04 Javascript
微信小程序入门之广告条实现方法示例
2018/12/05 Javascript
在vue项目中引入vue-beauty操作方法
2019/02/11 Javascript
vue获取时间戳转换为日期格式代码实例
2019/04/17 Javascript
微信小程序 调用微信授权窗口相关问题解决
2019/07/25 Javascript
微信小程序与公众号卡券/会员打通的问题
2019/07/25 Javascript
Vuex模块化应用实践示例
2020/02/03 Javascript
vue打包npm run build时候界面报错的解决
2020/08/13 Javascript
vue element-ul实现展开和收起功能的实例代码
2020/11/25 Vue.js
Linux下python3.6.1环境配置教程
2018/09/26 Python
django session完成状态保持的方法
2018/11/27 Python
利用Python正则表达式过滤敏感词的方法
2019/01/21 Python
selenium+python自动化测试之页面元素定位
2019/01/23 Python
python3.6中@property装饰器的使用方法示例
2019/08/17 Python
python 实现将小图片放到另一个较大的白色或黑色背景图片中
2019/12/12 Python
使用 PyTorch 实现 MLP 并在 MNIST 数据集上验证方式
2020/01/08 Python
Python实现UDP程序通信过程图解
2020/05/15 Python
Python中SQLite如何使用
2020/05/27 Python
IntelliJ 中配置 Anaconda的过程图解
2020/06/01 Python
python+openCV对视频进行截取的实现
2020/11/27 Python
python中altair可视化库实例用法
2021/01/26 Python
交通事故检查书范文
2014/01/30 职场文书
年会搞笑主持词
2014/03/27 职场文书
应聘教师自荐书
2014/06/16 职场文书
党员自我评议个人对照检查材料
2014/09/16 职场文书
2014年控辍保学工作总结
2014/12/08 职场文书
一篇文章弄懂MySQL查询语句的执行过程
2021/05/07 MySQL