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 相关文章推荐
23个超流行的jQuery相册插件整理分享
Apr 25 Javascript
通过一段代码简单说js中的this的使用
Jul 23 Javascript
jQuery实现列表的全选功能
Mar 18 Javascript
微信小程序 picker-view 组件详解及简单实例
Jan 10 Javascript
浅谈Vue 数据响应式原理
May 07 Javascript
vuex直接赋值的三种方法总结
Sep 16 Javascript
原生js实现获取form表单数据代码实例
Mar 27 Javascript
微信小程序 WXML节点信息查询详解
Jul 29 Javascript
leaflet加载geojson叠加显示功能代码
Feb 21 Javascript
Vue+Element自定义纵向表格表头教程
Oct 26 Javascript
vue3.0 加载json的方法(非ajax)
Oct 26 Javascript
JS封装cavans多种滤镜组件
Feb 15 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中长文章分页显示实现代码
2012/09/29 PHP
php调用C代码的实现方法
2014/03/11 PHP
在PHP中输出JS语句以及乱码问题的解决方案
2019/02/13 PHP
$()JS小技巧
2007/07/21 Javascript
javascript 获取函数形参个数
2014/07/31 Javascript
javascript实现依次输入input自动定焦
2014/12/23 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
2015/01/05 Javascript
AngularJS快速入门
2015/04/02 Javascript
js实现滑动触屏事件监听的方法
2015/05/05 Javascript
基于javascript实现样式清新图片轮播特效
2016/03/30 Javascript
Highcharts入门之简介
2016/08/02 Javascript
AngularJs 动态加载模块和依赖
2016/09/15 Javascript
vue使用watch 观察路由变化,重新获取内容
2017/03/08 Javascript
jQuery选择器特殊字符与属性空格问题
2017/08/14 jQuery
如何抽象一个Vue公共组件
2017/10/17 Javascript
Vue官方文档梳理之全局配置
2017/11/22 Javascript
vue scroller返回页面记住滚动位置的实例代码
2018/01/29 Javascript
微信小程序分享功能之按钮button 边框隐藏和点击隐藏
2018/06/14 Javascript
如何在vue里面优雅的解决跨域(路由冲突问题)
2019/01/20 Javascript
详解JS实现系统登录页的登录和验证
2019/04/29 Javascript
Vue-router 报错NavigationDuplicated的解决方法
2020/03/31 Javascript
[10:18]2018DOTA2国际邀请赛寻真——Fnatic能否笑到最后?
2018/08/14 DOTA
[48:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第二场 1月29日
2021/03/11 DOTA
Python学习小技巧之利用字典的默认行为
2017/05/20 Python
Python面向对象之类的内置attr属性示例
2018/12/14 Python
Python基于Dlib的人脸识别系统的实现
2020/02/26 Python
keras中的backend.clip用法
2020/05/22 Python
Django model重写save方法及update踩坑详解
2020/07/27 Python
为您的家、后院、车库等在线购物:Spreetail
2019/06/17 全球购物
正宗的日本零食和糖果订阅盒:Bokksu
2019/11/21 全球购物
c语言常见笔试题总结
2016/09/05 面试题
软件配置管理有什么好处
2015/04/15 面试题
最新教师自我评价分享
2013/11/12 职场文书
硕士研究生就业推荐信
2014/05/18 职场文书
婚纱店策划方案
2014/05/22 职场文书
寒假致家长的一封信
2015/10/10 职场文书