vue路由懒加载的实现方法


Posted in Javascript onMarch 12, 2018

本文介绍了vue的路由懒加载,分享给大家,具体如下:

我们可以把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件。

  1. component可以是一个箭头函数,我们可以使用动态 import语法来定义代码分块点;
  2. 如果想在network里面看到动态加载的组件名字,可以加webpackChunkName;
  3. 同时要在webpack.base.conf.js里面的output里面的filename下面加上chunkFileName

代码

// router里面的index.js
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
export default new Router({
 routes: [
  {
   path: '/',
   name: 'home',
   /* 
    * 使用动态组件,component可以是一个箭头函数
    * @表示src目录
    * 如果想在network里面看到动态加载的组件名字,可以加webpackChunkName,同时要在webpack.base.conf.js里面的output里面的filename下面加上chunkFileName
    * network里面动态加载模块名称
    */
   
   component: () => import(/* webpackChunkName: 'home' */'@/pages/Homes')
  
   
  },
  {
   path: '/todos',
   name: 'Todos',
   component: () => import(/* webpackChunkName: 'todo' */'@/pages/Todos')
  }
 ]
})

注意 上面的@代表当前src目录,具体可以去参考webpack的配置

webpack.base.conf.js里面添加 chunkFilename: '[name].js'

output: {
 path: config.build.assetsRoot,
 filename: '[name].js',
 // 需要配置的地方
 chunkFilename: '[name].js',
 publicPath: process.env.NODE_ENV === 'production'
  ? config.build.assetsPublicPath
  : config.dev.assetsPublicPath
}

分析

创建了home和todos两个组件使用了路由懒加载,配置好之后我们执行npm run dev来运行项目,打开network之后刷新一下,我们会发现加载了home.js,我们会发现和上面定义的webpackChunkName名字一样,同时点todos会加载todo.js。这就是路由懒加载的简单使用。

其他

在main.js里面项目的入口我们可以使用template的语法,也可以使用render函数

new Vue({
 el: '#app',
 router,
 components: { App },
 /*
 * 这里使用的template的语法
 * 也可以使用render函数,直接return一个html结构
 */
 // template: '<App/>'
 render() {

  return (
   <div>
    <App></App>
   </div>
  )
 } 
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
通过正则格式化url查询字符串实现代码
Dec 28 Javascript
html5的自定义data-*属性和jquery的data()方法的使用示例
Aug 21 Javascript
JS注释所产生的bug 即使注释也会执行
Nov 19 Javascript
JavaScript-RegExp对象只能使用一次问题解决方法
Jun 23 Javascript
javascript实现漂亮的拖动层,窗口拖拽特效
Apr 24 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
Feb 21 Javascript
JavaScript正则表达式和级联效果
Sep 14 Javascript
vue-awesome-swiper滑块插件使用方法详解
Nov 27 Javascript
使用axios请求接口,几种content-type的区别详解
Oct 29 Javascript
JS实现横向轮播图(初级版)
Jun 24 Javascript
Vue记住滚动条和实现下拉加载的完美方法
Jul 31 Javascript
小程序实现上传视频功能
Aug 18 Javascript
vue移动UI框架滑动加载数据的方法
Mar 12 #Javascript
详解vuex的简单使用
Mar 12 #Javascript
js提取中文拼音首字母的封装工具类
Mar 12 #Javascript
基于express中路由规则及获取请求参数的方法
Mar 12 #Javascript
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
Mar 12 #Javascript
javascript变量提升和闭包理解
Mar 12 #Javascript
浅谈angular4.0中路由传递参数、获取参数最nice的写法
Mar 12 #Javascript
You might like
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
2014/05/04 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
2014/05/08 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
JQuery 操作Javascript对象和数组的工具函数小结
2010/01/22 Javascript
Extjs 几个方法的讨论
2010/01/28 Javascript
javascript 多浏览器 事件大全
2010/03/23 Javascript
Javascript继承机制的设计思想分享
2011/08/28 Javascript
简介JavaScript中toUpperCase()方法的使用
2015/06/06 Javascript
JavaScript获得指定对象大小的方法
2015/07/01 Javascript
解析javascript图片懒加载与预加载的分析总结
2016/10/27 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
2016/11/23 Javascript
js选项卡的制作方法
2017/01/23 Javascript
深入理解Javascript中的观察者模式
2017/02/20 Javascript
ng2学习笔记之bootstrap中的component使用教程
2017/03/09 Javascript
原生JS实现九宫格抽奖效果
2017/04/01 Javascript
判断文字超过2行添加展开按钮,未超过则不显示,溢出部分显示省略号
2019/04/28 Javascript
ant design vue 表格table 默认勾选几项的操作
2020/10/31 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
Python3.6 Schedule模块定时任务(实例讲解)
2017/11/09 Python
tensorflow 中对数组元素的操作方法
2018/07/27 Python
python多进程控制学习小结
2018/10/31 Python
利用python实现汉字转拼音的2种方法
2019/08/12 Python
pycharm实现在子类中添加一个父类没有的属性
2020/03/12 Python
python实现最速下降法
2020/03/24 Python
打印机墨盒:123Inkjets
2017/02/16 全球购物
家长给幼儿园的表扬信
2014/01/09 职场文书
办理生育手续介绍信
2014/01/14 职场文书
接受捐赠答谢词
2014/01/27 职场文书
捐资助学倡议书
2014/04/15 职场文书
教师师德师风整改措施
2014/10/24 职场文书
毕业生登记表班级意见
2015/06/05 职场文书
医者仁心观后感
2015/06/17 职场文书
带你学习MySQL执行计划
2021/05/31 MySQL
MongoDB数据库常用的10条操作命令
2021/06/18 MongoDB
如何使用pdb进行Python调试
2021/06/30 Python
【海涛七七解说】DCG第二周:DK VS 天禄
2022/04/01 DOTA