ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Vue 路由懒加载, VueRouter一步完成Vue的路由懒加载 一行代码搞定懒加载

2022-07-15 21:00:37  阅读:134  来源: 互联网

标签:Vue router VueRouter import home 路由 加载


Vue Router路由配置中的component里面配置即可

1 // 路由懒加载的方式加载组件
2 
3   component: () => import('@/views/Detail'),

原理:

传统的 es6 导入方式,会在页面打开的时候,把所有的组件一股脑加载到内存中.这样做是浪费内存的. 如果我们的项目时单页面应用,则应该让对应的视图组件进行懒加载

注意: webpack 默认会把所有的 js 文件合并成一个 js.这样不利于懒加载.所以我们使用 import()让 webpack 打包文件时,将需要懒加载的文件单独打包成一个 js 文件.

简单来说:懒加载就是调用谁就加载谁。不用懒加载的话,是全部加载出来的

这里简单在运用VueRouter的时候进行懒加载

1.Vue VueRouter3官方地址:

https://v3.router.vuejs.org/zh/guide/advanced/lazy-loading.html#%E6%8A%8A%E7%BB%84%E4%BB%B6%E6%8C%89%E7%BB%84%E5%88%86%E5%9D%97

2.路由配置文件:

官网运用:

const Foo = () => import('./Foo.vue')

 

const router = new VueRouter({
  routes: [{ path: '/foo', component: Foo }]
})

 此时已经完成懒加载,

3.一步完成懒加载 看(2)

对比:

(1)非懒加载:

 1 // 1.引入插件
 2 import Vue from 'vue'
 3 import VueRouter from 'vue-router'
 4 
 5 // 4.引入外部组件
 6 import Home from '@/views/Home'
 7 
 8 // 2.注册插件
 9 Vue.use(VueRouter)
10 
11 // 3.创建实例对象
12 const router = new VueRouter({
13   mode: 'history',
14   routes:[
15     {path: '/', redirect: '/home' },
16     {path: '/home',name: 'home',component: Home,},
17   ]
18 })
19 
20 export default router

 

  (2)懒加载:17行

 1 // 1.引入插件
 2 import Vue from 'vue'
 3 import VueRouter from 'vue-router'
 4 
 5 // // 4.引入外部组件
 6 // import Home from '@/views/Home'
 7 
 8 // 2.注册插件
 9 Vue.use(VueRouter)
10 
11 // 3.创建实例对象
12 const router = new VueRouter({
13   mode: 'history',
14   routes:[
15     {path: '/', redirect: '/home' },
16     // {path: '/home',name: 'home',component: Home,},
17     {path: '/home',name: 'home',component: ()=>import('@/views/Home'),},
18   ]
19 })
20 
21 export default router

 

标签:Vue,router,VueRouter,import,home,路由,加载
来源: https://www.cnblogs.com/sinberya/p/16482767.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有