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 文字符串转换unicode编码函数
May 30 Javascript
javascript 异步页面查询实现代码(asp.net)
May 26 Javascript
JS小功能(checkbox实现全选和全取消)实例代码
Nov 28 Javascript
JS实现点击文字对应DIV层不停闪动效果的方法
Mar 02 Javascript
Google 地图API资料整理及详细介绍
Aug 06 Javascript
原生js实现焦点轮播图效果
Jan 12 Javascript
详解Vuejs2.0之异步跨域请求
Apr 20 Javascript
JS实现生成由字母与数字组合的随机字符串功能详解
May 25 Javascript
VUE引入第三方js包及调用方法讲解
Mar 01 Javascript
Vue实现点击按钮复制文本内容的例子
Nov 09 Javascript
jquery添加div实现消息聊天框
Feb 08 jQuery
vant picker+popup 自定义三级联动案例
Nov 04 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 smarty的预保留变量总结
2008/12/04 PHP
ajax返回值中有回车换行、空格的解决方法分享
2013/10/24 PHP
session在php5.3中的变化 session_is_registered() is deprecated in
2013/11/12 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
2014/09/12 PHP
js获取网页高度(详细整理)
2012/12/28 Javascript
JS实现匀速运动的代码实例
2013/11/29 Javascript
JavaScript入门基础
2015/08/12 Javascript
学习javascript面向对象 理解javascript对象
2016/01/04 Javascript
Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
2016/04/29 Javascript
js基于setTimeout与setInterval实现多线程
2016/06/17 Javascript
第一次接触神奇的Bootstrap导航条
2016/08/09 Javascript
canvas学习之API整理笔记(一)
2016/12/29 Javascript
jquery mobile实现可折叠的导航按钮
2017/03/11 Javascript
Django1.7+JQuery+Ajax验证用户注册集成小例子
2017/04/08 jQuery
Vue如何实现响应式系统
2018/07/11 Javascript
JavaScript实现连连看连线算法
2019/01/05 Javascript
JavaScript多种页面刷新方法小结
2019/04/04 Javascript
js纯前端实现腾讯cos文件上传功能的示例代码
2019/05/14 Javascript
vue的滚动条插件实现代码
2019/09/07 Javascript
Vue项目打包部署到iis服务器的配置方法
2019/10/14 Javascript
Vue2.4+新增属性.sync、$attrs、$listeners的具体使用
2020/03/08 Javascript
[05:14]辉夜杯主赛事第二日 RECAP精彩回顾
2015/12/27 DOTA
Python之列表的插入&amp;替换修改方法
2018/06/28 Python
DataFrame:通过SparkSql将scala类转为DataFrame的方法
2019/01/29 Python
Pytorch Tensor的索引与切片例子
2019/08/18 Python
Python中sys模块功能与用法实例详解
2020/02/26 Python
python TCP包注入方式
2020/05/05 Python
Python简单实现词云图代码及步骤解析
2020/06/04 Python
html5 css3实例教程 一款html5和css3实现的小机器人走路动画
2014/10/20 HTML / CSS
Lookfantastic法国官网:英国知名美妆购物网站
2017/10/28 全球购物
成品仓管员工作职责
2013/12/29 职场文书
学校后勤岗位职责
2014/02/19 职场文书
企业宣传方案
2014/03/04 职场文书
房屋租赁协议书
2014/04/10 职场文书
大型演出策划方案
2014/05/28 职场文书
2014年团员学习十八大思想汇报
2014/09/13 职场文书