vue2路由懒加载解决import引入报错问题

简介: 本文介绍了在Vue2项目中实现路由懒加载的方法,并解决了使用import语句进行懒加载时报错的问题。通过安装`babel-plugin-syntax-dynamic-import`插件并在项目的`.bablerc`文件中配置,可以成功实现路由组件的按需加载。同时,文章还提到了使用`webpackChunkName`为懒加载的组件指定单独的chunk名称,以避免所有组件被打包到同一个js文件中。

默认加载:

// 测试页面
import HelloWorld from '@/page/testHomePage/home'
import Form from '@/page/testHomePage/form'
import FormSubmit from '@/page/testHomePage/FormSubmit'
import PushRouterPage from '@/page/testHomePage/routerPage'
import Newpage from '@/page/testHomePage/newpage'
import Table from '@/page/testHomePage/table'

使用:

        {
   
          path: '/Table',
          name: 'Table',
          component: Table,
          meta: {
   
            title: 'Table',
          }
        },

vue自带的懒加载模式

在引入vue组件的时候我们可以直接引入组件并使用,但是这样并不能进行懒加载,项目打开的时候,会默认加载所有的页面,这并不是我们需要的,我们可以使用vue自带的懒加载模式:

component: resolve => (require(["@/components/common/Home.vue"], resolve))

这个虽然可以实现按需加载 ,也有一个小缺陷,就是全部模块会打包到一个js中。

使用import引入

  {
   
      path: '/',
      component: () => import(/* webpackChunkName: 'Home' */ '@/components/common/Home.vue'),
      meta: {
   
        title: '自述文件'
      },
   }

这个使用项目如果报错,那就是我们import的问题
问题原因: import 属于异步引用组件,需要特殊的 babel-loader 处理
我们需要一个加载器:

npm i babel-plugin-syntax-dynamic-import -D

在项目根目录找到.bablerc文件,没有的话新建

{
   
  "plugins": [
    "syntax-dynamic-import"
  ]
}

多余的我没有添加,这个新加的loader直接这样用,改完保存,重启项目就ok。

/* webpackChunkName: ‘Home’ */

这句话的作用是将当前组件打入一个包中,多个webpackChunkName相同将会打入一个包中,避免了将全部组件打入一个js中。

目录
相关文章
|
JavaScript 前端开发
VUE组件:如何在Vue中实现组件的动态引入?
VUE组件:如何在Vue中实现组件的动态引入?
2615 0
|
缓存
若依 this.$router.push 同地址不同参,页面不刷新问题
若依 this.$router.push 同地址不同参,页面不刷新问题
1804 0
深入掌握ant-design的form异步校验(一)
本文适合对ant-design的表单校验感兴趣的小伙伴阅读~
|
资源调度
yarn 错误:There appears to be trouble with your network connection. Retrying…
yarn 错误:There appears to be trouble with your network connection. Retrying…
1712 0
|
JavaScript 前端开发 UED
vue中vue-router路由懒加载(按需加载)的作用以及常见的实现方法
vue中vue-router路由懒加载(按需加载)的作用以及常见的实现方法
882 1
|
11月前
|
存储 前端开发 JavaScript
调用DeepSeek API增强版纯前端实现方案,支持文件上传和内容解析功能
本方案基于DeepSeek API增强版,提供纯前端实现的文件上传与内容解析功能。通过HTML和JavaScript,用户可选择文件并调用API完成上传及解析操作。方案支持多种文件格式(如PDF、TXT、DOCX),具备简化架构、提高响应速度和增强安全性等优势。示例代码展示了文件上传、内容解析及结果展示的完整流程,适合快速构建高效Web应用。开发者可根据需求扩展功能,满足多样化场景要求。
3493 64
|
JavaScript
Vue2图片懒加载(vue-lazyload)
这篇文章介绍了如何在Vue 2项目中使用`vue-lazyload`插件来实现图片的懒加载功能,包括安装插件、注册配置以及在页面中的具体使用方法。
848 0
Vue2图片懒加载(vue-lazyload)
|
JavaScript 前端开发
不懂module.exports、exports、export的区别,我惨遭diss
【10月更文挑战第22天】不懂module.exports、exports、export的区别,我惨遭diss
|
JavaScript 索引
Component name “index“ should always be multi-word vue/multi-word-component-names
Component name “index“ should always be multi-word vue/multi-word-component-names
element UI【解决方案】消息弹框被对话框遮挡($message消息框被dialog或$alert遮罩)
element UI【解决方案】消息弹框被对话框遮挡($message消息框被dialog或$alert遮罩)
922 3

热门文章

最新文章