vue项目使用动态路由,路由也是懒加载,代码分割也做了。首页是静态路由,当我进入首页时没有请求项目所需的全部js,但是当我进入其中一个动态页面时,会把整个项目使用的js请求下来。例如只有其中一个页面用到的第三方库,代码分割后这个库有1M大小,但是这个页面也不经常点击,所以点击其他页面就没必要去请求这个第三方库。
做的测试:进入首页(静态路由),不去请求全部js,第一次进入任何一个动态路由页面,就会请求全部js。看了dist打包文件里有第三方文件的script标签,由于配置了config.plugins.delete('prefetch'),所以script上也没有prefetch。然后我把引入了第三方路由的页面变成了静态路由加载,这时候再点击其他动态路由就不会去请求那个第三方库了。
所以我不明白为什么动态路由懒加载会去请求第三方库,我猜测是不是需要把引入这个第三方库的页面单独打包,把它和其他的动态页面分割开?亦或者是我配置的路由懒加载没有生效?
第三方库例如:;包括echarts也是,进入的页面没有用到,但是也加载了。
首先,需要理解Vue的动态路由懒加载和代码分割是如何工作的。Vue的动态路由懒加载主要是利用webpack的代码分割功能,将路由组件分割成不同的代码块,然后当路由被访问时才异步加载对应的代码块。这样可以实现按需加载,提高应用的启动速度和性能。
然而,你的描述中提到了一个问题,即当你进入任何一个动态路由页面时,会请求全部js。这可能是因为你的代码分割配置或者路由懒加载的配置存在一些问题。
首先,你需要确保你的路由懒加载配置是正确的。在Vue中,你可以使用动态导入(import()
)语法来实现路由的懒加载。例如:
const router = new VueRouter({ routes: [ { path: '/home', component: () => import('@/views/Home.vue') }, { path: '/about', component: () => import('@/views/About.vue') } ]})
在这个例子中,Home.vue
和About.vue
组件会被分割成不同的代码块,并且只有在对应的路由被访问时才会被加载。
其次,你需要确保你的webpack配置是正确的。你需要确保你的webpack配置启用了代码分割,并且没有启用预加载(prefetch
)或者预获取(preload
)。你可以在你的webpack配置文件中查找optimization.splitChunks
选项,并确保它被正确配置。同时,你也需要确保optimization.prefetch
和optimization.preload
选项没有被启用。
如果以上两点都没有问题,那么问题可能出在你的第三方库上。如果你的第三方库被多个路由页面共享,那么它可能会被包含在一个公共的代码块中,从而导致它在任何一个路由页面被访问时都被加载。要解决这个问题,你可以尝试将引入这个第三方库的页面单独打包,将它和其他的动态页面分割开。你可以使用webpack的optimization.splitChunks
选项的cacheGroups
属性来实现这一点。
最后,如果你的项目使用了vue-cli,那么你也可以尝试使用vue-cli的vue inspect
命令来查看webpack的配置,以确保你的配置是正确的。
总的来说,你需要确保你的路由懒加载和代码分割配置是正确的,同时也需要确保你的第三方库没有被多个路由页面共享,或者如果它们被共享了,你需要将它们单独打包。
当打包构建应用时,Javascript 包会变得非常大,影响页面加载速度。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了。 结合 Vue 的异步组件和 Webpack 的代码分割功能,轻松实现路由组件的懒加载。如: const Foo = () => import('./Foo.vue') 当你觉得你的页面热更新速度慢的时候,才需要往下看
本文向大家介绍vue实现路由懒加载及组件懒加载的方式,包括了vue实现路由懒加载及组件懒加载的方式的使用技巧和注意事项,需要的朋友参考一下 一、为什么要使用路由懒加载 为给客户更好的客户体验,首屏组件加载速度更快一些,解决白屏问题。 二、定义 懒加载简单来说就是延迟加载或按需加载,即在需要的时候的时候进行加载。 三、使用 常用的懒加载方式有两种:即使用vue异步组件 和 ES中的imp
本文向大家介绍vue addRoutes路由动态加载操作,包括了vue addRoutes路由动态加载操作的使用技巧和注意事项,需要的朋友参考一下 需求:增加权限控制,实现不同角色显示不同的路由导航 思路:每次登陆后请求接口返回当前角色路由 核心方法:vue-router2.2.0的addRoutes方法 + vuex 以下是我实现的获取菜单路由的方法,我将该方法的调用放在首页组件的生命钩子中,即
本文向大家介绍vue2笔记 — vue-router路由懒加载的实现,包括了vue2笔记 — vue-router路由懒加载的实现的使用技巧和注意事项,需要的朋友参考一下 在Web应用程序中,系统的瓶颈常在于系统的响应速度。如果系统响应速度过慢,用户就会出现埋怨情绪,系统的价值也因此会大打折扣。因此,提高系统响应速度,是非常重要的。 懒加载(Load On Demand)是一种独特而又强大的数据获
本文向大家介绍详解vue2路由vue-router配置(懒加载),包括了详解vue2路由vue-router配置(懒加载)的使用技巧和注意事项,需要的朋友参考一下 vue路由配置以及按需加载模块配置 1、首先在component文件目录下写俩组件: First.vue: Second.vue: 2、router目录下的index.js文件配置路由信息: 3、main.js中引入路由配置文件: 4、
动态请求路由是 linkerd 更为强大和灵活的功能之一。当 linkerd 接收到请求时,它必须以某种方式确定路由该请求到哪里。它通过为请求分配服务名称,然后应用 dtab 重写来实现。 这引入了服务目的地(例如,foo服务)和具体目的地(例如在东海岸数据中心运行的foo服务的staging版本)之间的区别。当应用程序只用服务名称来定位请求时,它们才能完全与环境无关。 流量转移 通过修改 dta