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 相关文章推荐
javascript XMLHttpRequest对象全面剖析
Apr 24 Javascript
jQuery学习笔记之jQuery选择器的使用
Dec 22 Javascript
分享十五款 jQuery 社交网络分享插件
May 16 Javascript
JavaScript编程中window的location与history对象详解
Oct 26 Javascript
BootStrap中Tab页签切换实例代码
May 30 Javascript
通过bootstrap全面学习less
Nov 09 Javascript
Node.js常用工具之util模块
Mar 09 Javascript
微信小程序页面开发注意事项整理
May 18 Javascript
jQuery实现遍历XML节点和属性的方法示例
Apr 29 jQuery
JS实现商品橱窗特效
Jan 09 Javascript
用VsCode编辑TypeScript的实现方法
May 07 Javascript
ES6中的类(Class)示例详解
Dec 09 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
MayFish PHP的MVC架构的开发框架
2009/08/13 PHP
thinkphp文件引用与分支结构用法实例
2014/11/26 PHP
php轻松实现文件上传功能
2016/03/03 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
js tab 选项卡
2009/04/26 Javascript
jquery.messager.js插件导致页面抖动的解决方法
2013/07/14 Javascript
面向对象设计模式的核心法则
2013/11/10 Javascript
jQuery之ajax删除详解
2014/02/27 Javascript
window.location的重写及判断location是否被重写
2014/09/04 Javascript
基于Bootstrap里面的Button dropdown打造自定义select
2016/05/30 Javascript
修改jquery中dialog的title属性方法(推荐)
2016/08/26 Javascript
node.js基于mongodb的搜索分页示例
2017/01/22 Javascript
详解windows下vue-cli及webpack 构建网站(二)导入bootstrap样式
2017/06/17 Javascript
浅谈node中的exports与module.exports的关系
2017/08/01 Javascript
vue-prop父组件向子组件进行传值的方法
2018/03/01 Javascript
jQuery HTML css()方法与css类实例详解
2020/05/20 jQuery
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
2020/07/31 Javascript
Vue如何循环提取对象数组中的值
2020/11/18 Vue.js
[00:52]DOTA2第二届亚洲邀请赛预选赛宣传片
2017/01/13 DOTA
python 布尔操作实现代码
2013/03/23 Python
python生成随机图形验证码详解
2017/11/08 Python
浅谈pandas中shift和diff函数关系
2018/04/08 Python
python dict 相同key 合并value的实例
2019/01/21 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
Keras自动下载的数据集/模型存放位置介绍
2020/06/19 Python
Pretty Little Thing美国:时尚女性服饰
2018/08/27 全球购物
优秀中专生推荐信
2013/11/17 职场文书
大学迎新晚会主持词
2014/03/24 职场文书
个人社会实践自我鉴定
2014/03/24 职场文书
出国留学计划书
2014/04/27 职场文书
教师拔河比赛广播稿
2014/10/14 职场文书
放弃继承权公证书
2015/01/23 职场文书
2015年乡镇平安建设工作总结
2015/05/13 职场文书
2015年社区宣传工作总结
2015/05/20 职场文书
欠条样本
2015/07/03 职场文书
详解Mysql数据库平滑扩容解决高并发和大数据量问题
2022/05/25 MySQL