重读vue电商网站52之路由懒加载

简介: 重读vue电商网站52之路由懒加载

当打包构建项目时,JavaScript 包会变得非常大,影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了。


具体需要 3 步:


安装 @babel/plugin-syntax-dynamic-import包。

在 babel.config.js 配置文件中声明该插件。

将路由改为按需加载的形式,示例代码如下:

Javascript

// /* webpackChunkName: "group-foo" */表示路由分组
 // './Foo.vue' 表示路由存放路径
 const Foo = () => import(/* webpackChunkName: "group-foo" */ './Foo.vue')
 const Bar = () => import(/* webpackChunkName: "group-foo" */ './Bar.vue')
 const Baz = () => import(/* webpackChunkName: "group-boo" */ './Baz.vue')

分在同一个组内的组件,当请求其中某一个组件时,组内其它组件也会同时请求。


关于路由懒加载的详细文档,可参考如下链接:


 https://router.vuejs.org/zh/guide/advanced/lazy-loading.html


@babel/plugin-syntax-dynamic-import 插件介绍传送门


npm


Javascript


npm install --save-dev @babel/plugin-syntax-dynamic-import

打开 vue-ui 面板,选择开发依赖,输入 @babel/plugin-syntax-dynamic-import 进行安装


图片.png

然后打开 babel.config.js 文件,在 plugins 数组内添加我们安装的依赖: '@babel/plugin-syntax-dynamic-import',具体位置见下文所示:


Javascript

// 项目发布阶段需要用到的 babel 插件
 const prodPlugins = []
 // 判断编译模式为生产环境
 if (process.env.NODE_ENV === 'production') {
 prodPlugins.push('transform-remove-console')
 }
 module.exports = {
 presets: [
 '@vue/cli-plugin-babel/preset'
 ],
 plugins: [
 [
 'component',
 {
 libraryName: 'element-ui',
 styleLibraryName: 'theme-chalk'
 }
 ],
 ...prodPlugins,
 '@babel/plugin-syntax-dynamic-import'
 ]
 }


相关文章
|
2天前
|
JavaScript
vue中使用@scroll不生效的问题
vue中使用@scroll不生效的问题
|
1天前
|
数据采集 JavaScript 搜索推荐
我们一起聊聊如何对Vue项目进行搜索引擎优化
【9月更文挑战第4天】Vue 项目的搜索引擎优化(SEO)较为复杂,因其内容默认由 JavaScript 渲染,部分搜索引擎难以索引。为提升 SEO 效果,可采用服务器端渲染(SSR)或预渲染,使用 Nuxt.js 或 Vue Server Renderer 实现 SSR,或利用 Prerender SPA Plugin 预渲染静态 HTML。此外,动态管理 Meta 标签、优化静态内容与 Sitemap、懒加载、图片优化、提升页面速度、设置正确的路由模式、使用结构化数据及构建良好外链均有益于 SEO。
33 11
|
5天前
|
存储 JavaScript
vue组件的五种传值方法(父子\兄弟\跨组件)
vue组件的五种传值方法(父子\兄弟\跨组件)
|
2天前
|
缓存 JavaScript 前端开发
vue中使用keep-alive的问题
vue中使用keep-alive的问题
|
5天前
|
JavaScript 前端开发
VUE技术栈-Vue的基本使用
尹正杰在其博客中介绍了Vue.js框架,它是一个渐进式JavaScript框架,由尤雨溪开发,结合了AngularJS的模板语法和数据绑定以及React的组件化和虚拟DOM技术,适合构建高效、轻量化的用户界面。
16 4
|
5天前
|
缓存 JavaScript 容器
vue动态组件化原理
【9月更文挑战第2天】vue动态组件化原理
16 2
|
8天前
|
资源调度 JavaScript 前端开发
Vue Router 的使用方式是什么
【8月更文挑战第30天】Vue Router 的使用方式是什么
10 2
|
8天前
|
JavaScript 前端开发 测试技术
Vue.js开发者必看!Vue Test Utils携手端到端测试,打造无懈可击的应用体验,引领前端测试新风尚!
【8月更文挑战第30天】随着Vue.js的普及,构建可靠的Vue应用至关重要。测试不仅能确保应用质量,还能提升开发效率。Vue Test Utils作为官方测试库,方便进行单元测试,而结合端到端(E2E)测试,则能构建全面的测试体系,保障应用稳定性。本文将带你深入了解如何使用Vue Test Utils进行单元测试,通过具体示例展示如何测试组件行为;并通过Cypress进行E2E测试,确保整个应用流程的正确性。无论是单元测试还是E2E测试,都能显著提高Vue应用的质量,让你更加自信地交付高质量的应用。
18 0
|
8天前
|
JavaScript 前端开发 UED
揭秘Vue.js高效开发:Vue Router如何让单页面应用路由管理变得如此简单?
【8月更文挑战第30天】随着Web应用复杂性的增加,单页面应用(SPA)因出色的用户体验和高效的页面加载性能而备受青睐。Vue.js凭借简洁的语法和灵活的组件系统成为构建SPA的热门选择,其官方路由管理器Vue Router则简化了路由管理。本文通过实战示例介绍如何利用Vue Router实现高效的SPA路由管理,包括命名路由、动态路由及其核心优势。
|
8天前
|
JavaScript API 网络架构
vue 动态路由使用
【8月更文挑战第30天】vue 动态路由使用
23 0