博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
「Vue.js」Vue-Router + Webpack 路由懒加载实现
阅读量:6707 次
发布时间:2019-06-25

本文共 1384 字,大约阅读时间需要 4 分钟。

一.前言

当打包构建应用时,Javascript 包会变得非常大,影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了。结合 Vue 的异步组件Webpack 的代码分割功能,轻松实现路由组件的懒加载.

建议首先熟读这两个知识点,会更容易理解懒加载的原理。本文的源码地址在-->,如果对你有帮助,欢迎star(・ε・●)

二.实战

话不多说,我们来一步步实践一下路由懒加载的过程

1.创建一个文件夹,目录结构大致如下
图片描述

2.创建两个简单的组件,作为切换组件时展示,代码很简单

3.重点是route的配置,没有用到路由懒加载时,我们一般是这样配置的:

import Vue from 'vue'import Router from 'vue-router'import Home from './views/Home.vue'import About from './views/About.vue'Vue.use(Router)export default new Router({  routes: [    {      path: '/home',      name: 'home',      component: Home    },    {      path: '/about',      name: 'about',      component: About    }  ]})

路由懒加载中我们要用到异步组件,所以改为这样配置:

import Vue from 'vue'import Router from 'vue-router'Vue.use(Router)function loadView(view) {  return () => import(/* webpackChunkName: "view-[request]" */ `@/views/${view}.vue`)}export default new Router({  routes: [    {      path: '/home',      name: 'home',      component: loadView('Home')    },    {      path: '/about',      name: 'about',      component: loadView('About')    }  ]})

除了上面用到的import()引入组件,我们还可以使用webpack特有的require.ensure()

const Baz = r => require.ensure([], ()=>r(require('./Baz.vue')), '/baz')

将其他的文件配置完成后,我们就可以在浏览器中看到懒加载的效果了,即只有当路由匹配成功时,才会加载相应的组件,而且加载一次后会将它缓存,下次再访问这个路由,不会重新加载。

图片描述

三、结语

感谢你阅读我的文章,如对你有帮助,欢迎点赞收藏。如有错误,欢迎指正。最后,十分建议大家跟着实现一遍,源码地址在。

转载地址:http://nzslo.baihongyu.com/

你可能感兴趣的文章
SVN 过滤文件
查看>>
我的友情链接
查看>>
How to Rollback a LVM Volume to its Snapshot.
查看>>
SAMBA服务器
查看>>
[tomcat9]This is very likely to create a memory leak. Stack trace of thread
查看>>
枚举原理与常见用法与技巧
查看>>
Linux Shell常用技巧(十)
查看>>
确定linux操作系统32位还是64位
查看>>
html学习笔记
查看>>
希赛2012软考《网络工程师》笔记(第四部分:知识产权与标准化)
查看>>
windows server 2008 r2 忘记域管理员密码的解决办法
查看>>
Centos 5.5 上面安装Open×××完整版上篇【服务端配置】
查看>>
一个高性能无锁非阻塞链表队列
查看>>
市场or市值-Android和IOS浅谈
查看>>
我的友情链接
查看>>
ubuntu上从mysql中用命令行备份出数据库
查看>>
Linux的哈希命令
查看>>
linux find命令之xargs的用法
查看>>
Visio2007也能画立体机房效果图
查看>>
Oracle job 时间间隔
查看>>