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 相关文章推荐
总结一些js自定义的函数
Aug 05 Javascript
关于__defineGetter__ 和__defineSetter__的说明
May 12 Javascript
对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)
Jul 31 Javascript
很好用的js日历算法详细代码
Mar 07 Javascript
javascript简单实现表格行间隔显示颜色并高亮显示
Nov 29 Javascript
jquery ajax jsonp跨域调用实例代码
Dec 11 Javascript
jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
Feb 15 Javascript
JavaScript实现无穷滚动加载数据
May 06 Javascript
Vue 动态设置路由参数的案例分析
Apr 24 Javascript
纯javascript实现选择框的全选与反选功能
Apr 08 Javascript
layui lay-verify form表单自定义验证规则详解
Sep 18 Javascript
JS实现省市县三级下拉联动
Apr 10 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 调试环境(IIS+PHP+MYSQL)
2007/01/10 PHP
dedecms模板标签代码官方参考
2007/03/17 PHP
PHP file_get_contents 函数超时的几种解决方法
2009/07/30 PHP
php和数据库结合的一个简单的web实例 代码分析 (php初学者)
2011/07/28 PHP
使用PHP Socket 编程模拟Http post和get请求
2014/11/25 PHP
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
2009/05/21 Javascript
js限制textarea每行输入字符串长度的代码
2012/10/31 Javascript
javascript + jquery实现定时修改文章标题
2014/03/19 Javascript
JavaScript输出当前时间Unix时间戳的方法
2015/04/06 Javascript
javascript实现的字符串与十六进制表示字符串相互转换方法
2015/07/17 Javascript
简介BootStrap model弹出框的使用
2016/04/27 Javascript
js和jq使用submit方法无法提交表单的快速解决方法
2016/05/17 Javascript
js判断复选框是否选中及选中个数的实现代码
2016/05/30 Javascript
微信小程序 网络API 上传、下载详解
2016/11/09 Javascript
JS 实现计算器详解及实例代码(一)
2017/01/08 Javascript
微信小程序实现皮肤功能(夜间模式)
2017/06/18 Javascript
vue单页应用在页面刷新时保留状态数据的方法
2018/09/21 Javascript
js实现小时钟效果
2020/03/25 Javascript
Jquery如何使用animation动画效果改变背景色的代码
2020/07/20 jQuery
vscode中Vue别名路径提示的实现
2020/07/31 Javascript
python通过exifread模块获得图片exif信息的方法
2015/03/16 Python
python定时关机小脚本
2018/06/20 Python
Python爬虫之pandas基本安装与使用方法示例
2018/08/08 Python
python检测IP地址变化并触发事件
2018/12/26 Python
详解python算法之冒泡排序
2019/03/05 Python
Tensorflow中的dropout的使用方法
2020/03/13 Python
django 实现手动存储文件到model的FileField
2020/03/30 Python
HTML5触摸事件实现移动端简易进度条的实现方法
2018/05/04 HTML / CSS
Martinelli官方商店:西班牙皮鞋和高跟鞋品牌
2019/07/30 全球购物
Myprotein瑞士官方网站:运动营养和健身网上商店
2019/09/25 全球购物
装修致歉信
2014/01/15 职场文书
护理人员的自我评价分享
2014/03/15 职场文书
会计师事务所实习证明
2014/11/16 职场文书
学校党风廉政建设调研报告
2015/01/01 职场文书
中班上学期个人总结
2015/02/12 职场文书
四风之害观后感
2015/06/09 职场文书