当前位置:首页 > VUE

vue cli 实现多页面

2026-02-20 16:47:32VUE

配置多页面入口

vue.config.js 中配置 pages 对象,每个键值对代表一个页面入口。键为页面名称,值为包含 entry(入口文件)、template(HTML模板)、filename(输出文件名)等配置的对象。

module.exports = {
  pages: {
    index: {
      entry: 'src/pages/index/main.js',
      template: 'public/index.html',
      filename: 'index.html'
    },
    about: {
      entry: 'src/pages/about/main.js',
      template: 'public/about.html',
      filename: 'about.html'
    }
  }
}

目录结构建议

多页面项目通常按功能模块划分目录,每个页面拥有独立的入口文件、组件和路由。推荐结构如下:

src/
  pages/
    index/
      main.js      # 入口文件
      App.vue      # 根组件
      components/  # 私有组件
      router/      # 路由配置
    about/
      main.js
      App.vue

公共依赖处理

通过 configureWebpackchainWebpack 配置公共代码拆分,避免重复打包:

module.exports = {
  configureWebpack: {
    optimization: {
      splitChunks: {
        chunks: 'all',
        cacheGroups: {
          vendors: {
            test: /[\\/]node_modules[\\/]/,
            priority: -10
          },
          common: {
            minChunks: 2,
            priority: -20,
            reuseExistingChunk: true
          }
        }
      }
    }
  }
}

环境变量配置

为不同页面设置特定环境变量,在项目根目录创建 .env.[mode] 文件:

VUE_APP_PAGE_NAME=about

通过 process.env.VUE_APP_PAGE_NAME 在代码中访问。

开发模式调试

运行 vue-cli-service serve 时默认只打开第一个页面。可通过指定页面名称调试特定页面:

vue-cli-service serve --page about

或修改 package.jsonscripts 部分:

"scripts": {
  "serve:about": "vue-cli-service serve --page about"
}

生产构建优化

添加 preloadprefetch 配置提升性能:

module.exports = {
  chainWebpack: config => {
    Object.keys(pages).forEach(page => {
      config.plugins.delete(`prefetch-${page}`)
      config.plugin(`preload-${page}`).tap(() => [{
        rel: 'preload',
        as: 'script'
      }])
    })
  }
}

路由配置示例

每个页面的路由应独立配置。以 Vue Router 为例:

vue cli 实现多页面

// src/pages/about/router/index.js
import Vue from 'vue'
import Router from 'vue-router'
import About from '../views/About.vue'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      name: 'about',
      component: About
    }
  ]
})

标签: 多页vue
分享给朋友:

相关文章

vue手动实现弹窗

vue手动实现弹窗

实现弹窗组件的基本结构 在Vue中手动实现弹窗组件,需要创建一个独立的弹窗组件,并通过props控制其显示与隐藏。弹窗组件通常包含遮罩层、内容区域和关闭按钮。 <template>…

javascript实现vue

javascript实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,主要包括数据绑定、响应式系统和虚拟 DOM。以下是一个简化的实现示例。 数据响应式系统 通过 Object.de…

vue实现ssr

vue实现ssr

Vue 实现 SSR(服务端渲染) Vue 的服务端渲染(SSR)允许在服务器端生成完整的 HTML 内容,再发送到客户端,提升首屏加载速度和 SEO 友好性。以下是实现 Vue SSR 的关键步骤和…

vue 实现评分

vue 实现评分

Vue 实现评分功能 在 Vue 中实现评分功能可以通过多种方式完成,包括使用第三方组件库或自定义实现。以下是两种常见的方法: 使用第三方组件库(如 Element UI) Element UI 提…

vue实现CRUD

vue实现CRUD

Vue 实现 CRUD 操作 Vue 提供了响应式数据绑定和组件化开发能力,结合后端 API 可以轻松实现 CRUD(增删改查)功能。以下是基于 Vue 3 和 Axios 的完整实现方案。 安装依…

vue 实现$(id)

vue 实现$(id)

在 Vue 中实现类似 jQuery 的 $(id) 功能,可以通过以下几种方式操作 DOM 元素: 使用 ref 属性 Vue 推荐使用 ref 属性来直接访问 DOM 元素或组件实例。在模板中为…