diff options
| author | 2024-09-03 00:03:19 +0800 | |
|---|---|---|
| committer | 2024-09-03 00:03:19 +0800 | |
| commit | 1605bd66ab97a206e4698954d47b10d87b09ec2d (patch) | |
| tree | 8dd421ccbf3b1bb6b273e11644af9f830484a666 | |
| parent | e960ff10b9e9a0d8c9842d23aa278d524b7de124 (diff) | |
| download | HydroRoll-1605bd66ab97a206e4698954d47b10d87b09ec2d.tar.gz HydroRoll-1605bd66ab97a206e4698954d47b10d87b09ec2d.zip | |
feat: add router-guards for site
| -rw-r--r-- | site/src/App.vue | 48 | ||||
| -rw-r--r-- | site/src/router/index.ts | 17 | ||||
| -rw-r--r-- | site/src/views/404.vue | 18 | ||||
| -rw-r--r-- | site/src/views/Welcome.vue | 47 |
4 files changed, 75 insertions, 55 deletions
diff --git a/site/src/App.vue b/site/src/App.vue index c70a3fa..88a4d52 100644 --- a/site/src/App.vue +++ b/site/src/App.vue @@ -1,47 +1,7 @@ -<script setup lang="ts"> -import Left from './components/Left.vue' -import TheWelcome from './components/Right.vue' -</script> - <template> - <header> - <img alt="Vue logo" class="logo" src="./assets/Hydroroll-small.svg" width="125" height="125" /> - - <div class="wrapper"> - <Left msg="饼在画了!" /> - </div> - </header> - - <main> - <TheWelcome /> - </main> + <router-view /> </template> -<style scoped> -header { - line-height: 1.5; -} - -.logo { - display: block; - margin: 0 auto 2rem; -} - -@media (min-width: 1024px) { - header { - display: flex; - place-items: center; - padding-right: calc(var(--section-gap) / 2); - } - - .logo { - margin: 0 2rem 0 0; - } - - header .wrapper { - display: flex; - place-items: flex-start; - flex-wrap: wrap; - } -} -</style> +<script lang="ts"> +export default {} +</script>
\ No newline at end of file diff --git a/site/src/router/index.ts b/site/src/router/index.ts index 65353da..5b90a51 100644 --- a/site/src/router/index.ts +++ b/site/src/router/index.ts @@ -4,18 +4,13 @@ import { createRouter, createWebHistory } from 'vue-router' const routes = [ { path: '/', - component: () => import('@/layouts/default/Default.vue'), - children: [ - { - path: '', - name: 'Home', - // route level code-splitting - // this generates a separate chunk (about.[hash].js) for this route - // which is lazy-loaded when the route is visited. - component: () => import(/* webpackChunkName: "home" */ '@/views/Home.vue'), - }, - ], + component: () => import('@/views/Welcome.vue'), }, + { + path: '/:path(.*)', + name: '404', + component: () => import('@/views/404.vue'), + } ] const router = createRouter({ diff --git a/site/src/views/404.vue b/site/src/views/404.vue new file mode 100644 index 0000000..7462697 --- /dev/null +++ b/site/src/views/404.vue @@ -0,0 +1,18 @@ +<template> + <div>404</div> +</template> + +<script lang='ts'> +export default { + setup() { + return {} + }, + beforeCreate() { + location.href = '/' + } +} +</script> + +<style lang='scss' scoped> + +</style> diff --git a/site/src/views/Welcome.vue b/site/src/views/Welcome.vue new file mode 100644 index 0000000..4a608ee --- /dev/null +++ b/site/src/views/Welcome.vue @@ -0,0 +1,47 @@ +<script setup lang="ts"> +import Left from '@/components/Left.vue' +import TheWelcome from '@/components/Right.vue' +</script> + +<template> + <header> + <img alt="Vue logo" class="logo" src="@/assets/Hydroroll-small.svg" width="125" height="125" /> + + <div class="wrapper"> + <Left msg="饼在画了!" /> + </div> + </header> + + <main> + <TheWelcome /> + </main> +</template> + +<style scoped> +header { + line-height: 1.5; +} + +.logo { + display: block; + margin: 0 auto 2rem; +} + +@media (min-width: 1024px) { + header { + display: flex; + place-items: center; + padding-right: calc(var(--section-gap) / 2); + } + + .logo { + margin: 0 2rem 0 0; + } + + header .wrapper { + display: flex; + place-items: flex-start; + flex-wrap: wrap; + } +} +</style> |
