增加vue-router来控制页面显示

This commit is contained in:
2024-12-11 17:42:32 +08:00
parent c0bae2c1bb
commit e8b6e165bd
5 changed files with 52 additions and 14 deletions

View File

@@ -9,7 +9,8 @@
"preview": "vite preview"
},
"dependencies": {
"vue": "^3.5.13"
"vue": "^3.5.13",
"vue-router": "4"
},
"devDependencies": {
"@types/node": "^22.10.1",

18
pnpm-lock.yaml generated
View File

@@ -11,6 +11,9 @@ importers:
vue:
specifier: ^3.5.13
version: 3.5.13(typescript@5.7.2)
vue-router:
specifier: '4'
version: 4.5.0(vue@3.5.13(typescript@5.7.2))
devDependencies:
'@types/node':
specifier: ^22.10.1
@@ -317,6 +320,9 @@ packages:
'@vue/compiler-ssr@3.5.13':
resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==, tarball: https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz}
'@vue/devtools-api@6.6.4':
resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==, tarball: https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz}
'@vue/reactivity@3.5.13':
resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==, tarball: https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz}
@@ -585,6 +591,11 @@ packages:
yaml:
optional: true
vue-router@4.5.0:
resolution: {integrity: sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w==, tarball: https://registry.npmjs.org/vue-router/-/vue-router-4.5.0.tgz}
peerDependencies:
vue: ^3.2.0
vue@3.5.13:
resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==, tarball: https://registry.npmjs.org/vue/-/vue-3.5.13.tgz}
peerDependencies:
@@ -782,6 +793,8 @@ snapshots:
'@vue/compiler-dom': 3.5.13
'@vue/shared': 3.5.13
'@vue/devtools-api@6.6.4': {}
'@vue/reactivity@3.5.13':
dependencies:
'@vue/shared': 3.5.13
@@ -1015,6 +1028,11 @@ snapshots:
fsevents: 2.3.3
sass-embedded: 1.82.0
vue-router@4.5.0(vue@3.5.13(typescript@5.7.2)):
dependencies:
'@vue/devtools-api': 6.6.4
vue: 3.5.13(typescript@5.7.2)
vue@3.5.13(typescript@5.7.2):
dependencies:
'@vue/compiler-dom': 3.5.13

View File

@@ -1,12 +1,3 @@
<script setup lang="ts">
import { ref } from 'vue'
import Config from './pages/Config.vue'
import Project from './pages/Project.vue'
const showConfig = ref(false)
</script>
<template>
<Config v-if="showConfig" />
<Project v-else />
<router-view />
</template>

View File

@@ -1,7 +1,8 @@
import { createApp } from 'vue'
import './style.css'
import type { App as AppType } from 'vue'
import App from './App.vue'
import router from './router'
import './style.css'
const app: AppType = createApp(App)
const app = createApp(App)
app.use(router)
app.mount('#app')

27
src/router/index.ts Normal file
View File

@@ -0,0 +1,27 @@
import { createWebHashHistory } from 'vue-router'
import { createRouter } from 'vue-router'
import type { RouteRecordRaw } from 'vue-router'
const routes: RouteRecordRaw[] = [
{
path: '/',
redirect: '/project'
},
{
path: '/project',
name: 'project',
component: () => import('@/pages/Project.vue')
},
{
path: '/config',
name: 'config',
component: () => import('@/pages/Config.vue')
}
]
const router = createRouter({
history: createWebHashHistory(),
routes
})
export default router