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中。

目录
相关文章
|
7月前
|
移动开发 资源调度 JavaScript
Vue Router的介绍与引入
Vue Router的介绍与引入
47 0
|
7月前
|
JavaScript 前端开发
VUE组件:如何在Vue中实现组件的动态引入?
VUE组件:如何在Vue中实现组件的动态引入?
1379 0
|
7月前
|
JavaScript
Vue中的路由懒加载是什么?如何实现?
Vue中的路由懒加载是什么?如何实现?
60 1
|
7月前
|
JavaScript
如何使用Vue的路由实现组件的懒加载和按需加载?
如何使用Vue的路由实现组件的懒加载和按需加载?
58 1
|
前端开发 JavaScript API
【Vue3】组件数据懒加载
【Vue3】组件数据懒加载
165 0
|
2月前
|
JavaScript 前端开发 UED
vue中vue-router路由懒加载(按需加载)的作用以及常见的实现方法
vue中vue-router路由懒加载(按需加载)的作用以及常见的实现方法
196 1
|
2月前
|
JavaScript API
Vue中使用require.context()自动引入组件和自动生成路由的方法介绍
Vue中使用require.context()自动引入组件和自动生成路由的方法介绍
50 0
|
5月前
|
JavaScript
vue 动态组件【详解】component :is
vue 动态组件【详解】component :is
347 0
|
6月前
|
缓存 JavaScript API
Vue-Router路由动态缓存组件(keep-alive),vue2/vue3不同写法
Vue-Router路由动态缓存组件(keep-alive),vue2/vue3不同写法
|
7月前
|
JavaScript
在 Vue 中如何使用组件的懒加载和按需加载?
在 Vue 中如何使用组件的懒加载和按需加载?
63 1