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 相关文章推荐
jquery下onpropertychange事件的绑定方法
Aug 01 Javascript
基于jQuery的图片大小自动适应实现代码
Nov 17 Javascript
jquery 实现input输入什么div图层显示什么
Jun 15 Javascript
jQuery制作效果超棒的手风琴折叠菜单
Apr 03 Javascript
javascript实现保留两位小数的多种方法
Dec 18 Javascript
JavaScript实现in-place思想的快速排序方法
Aug 07 Javascript
JQuery控制DIV的选取实现方法
Sep 18 Javascript
js实现手机拍照上传功能
Jan 17 Javascript
angularJS 指令封装回到顶部示例详解
Jan 22 Javascript
利用Jquery实现几款漂亮实用的时间轴(附示例代码)
Feb 15 Javascript
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
May 15 jQuery
浅谈jquery中ajax跨域提交的时候会有2次请求的问题
Nov 10 jQuery
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实现文件下载功能的几个代码分享
2014/05/10 PHP
thinkphp中session和cookie无效的解决方法
2014/12/19 PHP
PHP实现的自定义数组排序函数与排序类示例
2016/11/18 PHP
PHP面向对象程序设计方法实例详解
2016/12/24 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
2017/06/30 PHP
基于datagrid框架的查询
2013/04/08 Javascript
js变量、作用域及内存详解
2014/09/23 Javascript
node.js中的path.dirname方法使用说明
2014/12/09 Javascript
javascript实现依次输入input自动定焦
2014/12/23 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
2015/09/14 Javascript
jQuery无刷新上传之uploadify简单代码
2017/01/17 Javascript
基于JavaScript实现下拉列表左右移动代码
2017/02/07 Javascript
jQuery中用on绑定事件时需注意的事项
2017/03/19 Javascript
js实现移动端编辑添加地址【模仿京东】
2017/04/28 Javascript
JS使用贪心算法解决找零问题示例
2017/11/27 Javascript
浅谈React前后端同构防止重复渲染
2018/01/05 Javascript
Vue+webpack项目基础配置教程
2018/02/12 Javascript
p5.js实现斐波那契螺旋的示例代码
2018/03/22 Javascript
JavaScript中工厂函数与构造函数示例详解
2019/05/06 Javascript
js实现无缝轮播图
2020/03/09 Javascript
js+audio实现音乐播放器
2020/09/13 Javascript
[30:55]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第二场 11.18
2020/11/18 DOTA
python实现的希尔排序算法实例
2015/07/01 Python
Python中遍历字典过程中更改元素导致异常的解决方法
2016/05/12 Python
在Python中执行系统命令的方法示例详解
2017/09/14 Python
用Python编写一个高效的端口扫描器的方法
2018/12/20 Python
如何使用django的MTV开发模式返回一个网页
2019/07/22 Python
Django Form 实时从数据库中获取数据的操作方法
2019/07/25 Python
Python将字典转换为XML的方法
2020/08/01 Python
Python的信号库Blinker用法详解
2020/12/31 Python
一道输出判断型Java面试题
2014/10/01 面试题
电视购物广告词
2014/03/19 职场文书
化学教育专业求职信
2014/07/08 职场文书
世界文化遗产导游词
2015/02/13 职场文书
2016大学生毕业实习心得体会
2016/01/23 职场文书
能用CSS实现的就不要麻烦JavaScript了
2021/10/05 HTML / CSS