vue3多页面配置你一定会遇到的问题,踩坑指南

news2025/2/25 13:54:15

vue3实现多页面打包容易,关键是如何实现本地的开发和调试?我们接下来解决如下几个问题:

1 多页面项目的项目结构是怎样的?

--public

--src
   ---App.vue
   ---main.js
   ---page1. +
        ---App.vue
        ---main.js
        ----home.vue
        ----list.vue
   ---page2. +
        ---App.vue
        ---main.js
        ----home.vue
        ----list.vue
vite.config.js
package.json
page1.html. +
page2.html. +

这是我们配置的最原始的一个结构,如图,带+的是新增的文件(文件夹)特别注意新增的page1.html和page2.html,这两个模版文件是一定不能忘记的。同时要注意script中引用main.js文件路径的修改,如图

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Vite + Vue</title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/page2/main.js"></script>
  </body>
</html>

但是仅仅只是这样还是不够的,我们要打包成不同的项目,那需要在对vite.config.js做一些更改

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import {resolve} from "path"
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  server:{
    hmr:true
  },
  build:{
    rollupOptions:{
      input:{
        index:resolve(__dirname,'index.html'),
        page1:resolve(__dirname,"/page1.html"),
        page2:resolve(__dirname,"/page2.html")
      },
      output:{
        chunkFileNames:"js/[name]-[hash].js",
        assetFileNames:"[ext]/[name]-[hash].[ext]"
      }
    }
  }
})

我们需要对rollipOption选项的input和output做多入口和出口的设置。到这一步。我们 打包以后就可以正常生成对应的文件了。我们看一看结果:

 同时我们通过http://localhost:5173/page1.html就能正常访问page1,和page2了,展示的内容分别是page1项目和page2项目的app.vue的内容。但是我们的page1和page2项目可不止一个app.vue,我们要通过路由配置不同的路由访问不同的页面。接下来我们需要配置来看路由了,不过在此之前我们要先改造下我们的项目目录结构

仔细观察。我们在page1和page2这两个项目下分别新增了一个views文件夹,用来存放页面,同时新增了一个home和list页面,用来测试。然后我们再新增我们的路由文件,注意 路径和组件的引用

//src下新建router文件夹
//main.js 主入口的main.js
import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
import router from "./router/index". +
createApp(App).use(router).mount('#app')


--------router.js----------------

    import { createRouter, createWebHistory ,createWebHashHistory} from 'vue-router'

    const router = createRouter({
        history: import.meta.env.DEV ? createWebHashHistory() : createWebHistory(),
        routes: [
            {
                path: '/',
                name: 'home',
                component: ()=>import("../pages/home.vue")
            },
            {
                path: '/list',
                name: 'list',
                component: ()=>import("../pages/list.vue")
            },
            {   
                path: '/page1/home',
                name: 'page1Home',
                component: ()=>import("../page1/views/home.vue")
            },
            {   
                path: '/page1/list',
                name: 'page1List',
                component: ()=>import("../page1/views/list.vue")
            },
            {   
                path: '/page2/home',
                name: 'page2Home',
                component: ()=>import("../page2/views/home.vue")
            },
            {   
                path: '/page2/list',
                name: 'page2List',
                component: ()=>import("../page2/views/list.vue")
            }

          
        ]
    })

    export default router


到此为止。我们通过页面访问page1下的home,则只需要输入地址http://localhost:5173/#/page1/home这样我们就能正常访问了。如下图:

其他的多页面地址访问同理 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/863090.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hadoop集群部署-完全分布式

文章目录 一、概述二、架构三、部署1. 基础环境配置2. 创建hadoop用户并且生成密钥3. 配置三台服务器免密登录4. Zookeeper安装5. JDK与Hadoop安装6. 配置环境变量7. 启动Zookeeper8. 配置HDFS9. 启动journalnode10. master节点格式化11. 配置YARN12. Hadoop开启Histotryserver…

无涯教程-Perl - lc函数

描述 此函数返回小写版本的EXPR,如果省略EXPR,则返回$_。 语法 以下是此函数的简单语法- lc EXPRlc返回值 此函数返回小写版本的EXPR,如果省略EXPR,则返回$_。 例 以下是显示其基本用法的示例代码- #!/usr/bin/perl$orig_string"This is Test and CAPITAL"; …

腾讯云服务器租用价格表_轻量_CVM_GPU(2023更新)

腾讯云服务器租用费用表新鲜出炉2023年更新&#xff0c;轻量应用服务器2核2G4M带宽112元一年&#xff0c;540元三年、2核4G5M带宽218元一年&#xff0c;2核4G5M带宽756元三年、云服务器CVM S5实例2核2G配置280.8元一年、GPU服务器GN10Xp实例145元7天&#xff0c;腾讯云服务器网…

黑马程序员Vue全套视频

Vue 2 创建vue实例 示例: <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><script src"https://cdn.jsdelivr.net/npm/vue2.…

全网最全ChatGPT/AIGC报告分析(365份)

本星球整理了365份ChatGPT/AIGC重磅专业报告&#xff08;更新中…&#xff09;&#xff0c;部分目录如下&#xff0c;请读者搜索关键字&#xff0c;获取报告&#xff0c;学习参阅。 https://mp.weixin.qq.com/s/hvI2Hupjx_mnPh3YGyobww 1、计算机研究报告&#xff1a;ChatCPT…

vscode里面报:‘xxx‘ is assigned a value but never used.解决办法

const setCurPage: React.Dispatch<React.SetStateAction<number>> 已声明“setCurPage”&#xff0c;但从未读取其值。ts(6133) setCurPage is assigned a value but never used.eslinttypescript-eslint/no-unused-vars 出现这个报错是eslint导致的&#xff0…

竞赛项目 车位识别车道线检测 - python opencv

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习 机器视觉 车位识别车道线检测 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f947;学长这里给一个题目综合评分(每项满分5分) …

基于Containerd容器引擎和kubeadm工具部署K8sv1.26.3

kubernetes master节点及node节点各核心组件的功能概述 master节点主要组件概述 master节点主要是k8s的控制节点&#xff0c;在master节点上主要有三个组件必不可少&#xff0c;apiserver、scheduler和controllermanager&#xff1b;etcd是集群的数据库&#xff0c;是非常核心的…

探索美颜SDK技术:实现精准人脸美化的算法与挑战

在现代社交媒体和直播平台的兴起中&#xff0c;美颜技术已成为一种不可或缺的元素&#xff0c;让用户能够在镜头前展现出最佳的自己。这种技术的背后有着复杂而精密的算法&#xff0c;由美颜SDK驱动&#xff0c;以实现精准人脸美化。本文将探讨这些算法的核心原理、应用领域以及…

代码随想录 - 链表

总结概述 链表理论基础 链表是一种通过指针串联的线性结构&#xff0c;每一个节点由两部分组成&#xff0c;一个是数据域一个是指针域&#xff08;存放指向下一个节点的指针&#xff09;&#xff0c;最后一个节点的指针域指向null&#xff08;空指针的意思&#xff09;。 链表的…

SpringBoot自定义拦截器interceptor使用详解

Spring Boot拦截器Intercepter详解 Intercepter是由Spring提供的Intercepter拦截器&#xff0c;主要应用在日志记录、权限校验等安全管理方便。 使用过程 1.创建自定义拦截器&#xff0c;实现HandlerInterceptor接口,并按照要求重写指定方法 HandlerInterceptor接口源码&am…

4-5-tablewidget

文章目录 添加控件&#xff0c;添加行列数widget.cppwidget.h效果 添加控件&#xff0c;添加行列数 widget.cpp #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this)…

PEFD-多投影蒸馏详细论文与代码解读(Improved Feature Distillation via Projector Ensemble)

论文链接&#xff1a;https://papers.nips.cc/paper_files/paper/2022/file/4ec0b6648bdf487a2f1c815924339022-Paper-Conference.pdf 源码链接&#xff1a;https://github.com/chenyd7/PEFD 文章目录 前言一、论文核心二、论文摘要三、论文内容四、集成投影方法五、源码环境安…

大厂急了,30+名企“报复性招人”

&#x1f4e2;紧急通知&#xff01;紧急通知&#xff01; 2024届秋招已全面开启&#xff01; 没错&#xff01;你没听错&#xff01;&#xff01;&#xff01;2024届秋招真的开始了&#xff0c;你还沉浸在暑假温柔乡&#xff0c;有些人已经拿到了offer&#xff01;惊不惊喜意…

nodejs+vue+elementui小区物业管理系统_78ahx

课题主要分为四大模块&#xff1a;即管理员模块&#xff0c;物业管理模块、业主模块和维修员模块&#xff0c;主要功能包括&#xff1a;个人中心、物业管理、业主管理、维修员管理、小区公告管理、小区信息管理、房产信息管理、车位信息管理、停车位管理、停车信息管理、缴费信…

性能测试工具RunnerGo中如何管理接口

RunnerGo是一款基于go语言开发的开源测试平台&#xff0c;支持接口管理、自动化测试、性能测试等3大测试模块&#xff0c;今天给大家带来如何使用RunnerGo进行接口管理。 RunnerGo的接口管理类似于 Apipost&#xff0c;满足绝大多数接口管理需求。以下是使用 RunnerGo 进行接口…

储能pcb的布局注意事项与制造难点

随着新能源需求的不断增长和能源结构的转型&#xff0c;储能技术的市场规模不断扩大。储能PCB作为储能系统中电池模块的重要组成部分&#xff0c;对整个系统的安全性和性能起到关键作用。今天我们就来聊聊&#xff0c;储能pcb有什么特征。 什么是储能&#xff1a;储能是指能量…

封装Ellipsis组件,亲测使用各种场景

自己封装了Ellipsis组件 基于reacttaro&#xff0c;以下是实现代码&#xff0c;分为JSX和CSS文件 JSX代码如下&#xff1a; import { FC, Fragment, JSX, useState } from react; import { Image, StandardProps, Text, View } from tarojs/components;import iconDropDown fr…

2023年初中信息技术学科暑假备课

目录 2023年初中信息技术学科暑假备课1. 创意空间1.1 教师的空间1.2 学生的空间1.3 关于FTP服务器设置 2. 什么是编程2.1 编程语言2.2 人人都应学好编程2.3. 编程难吗&#xff1f;2.4 python用途 3. 开发环境3.1 打开IDLE3.2 IDLE窗口3.2.1 shell窗口和编辑窗口 4. 项目式教学4…

SysML V1.2 P1.概述

Scope SysML重用UML 2的子集&#xff0c;并提供额外的扩展来满足语言的需求。该规范根据UML 2中被重用的部分和UML 2的扩展&#xff0c;记录了语言体系结构。该规范包括完整语言的具体语法(符号)&#xff0c;并指定UML 2的扩展。UML 2规范的可重用部分没有直接包含在规范中&…