当前位置: 首页 > news >正文

vue3+ts项目 配置vue-router

安装vue-router

pnpm install vue-router

配置

在这里插入图片描述

1.src/router/index.ts文件下的内容

import type { App } from 'vue'
import type { RouteRecordRaw } from 'vue-router'
import { createRouter, createWebHistory } from 'vue-router'
import remainingRouter from './modules/remaining'// 创建路由实例
const router = createRouter({history: createWebHistory(import.meta.env.VITE_BASE_PATH), // createWebHashHistory URL带#,createWebHistory URL不带#strict: true,routes: remainingRouter as RouteRecordRaw[],scrollBehavior: () => ({ left: 0, top: 0 })
})export const setupRouter = (app: App<Element>) => {app.use(router)
}export default router

2.src/router/modules/remaining.ts

import HomeView from '../../views/HomeView.vue'
const remainingRouter= [{path: '/',name: 'home',component: HomeView,},{path: '/about',name: 'about',component: () => import('../../views/AboutView.vue'),},
]export default remainingRouter

3. main.js

import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
// 路由
import router, { setupRouter } from './router'
const setupAll = async () => {const app = createApp(App)setupRouter(app)await router.isReady()app.mount('#app')
}setupAll()

4.App.vue

<script setup lang="ts">
import { RouterLink, RouterView } from 'vue-router'
</script><template><header><div class="wrapper"><nav><RouterLink to="/">Home</RouterLink><RouterLink to="/about">About</RouterLink></nav></div></header><RouterView style="height: calc(100% - 1.5em)" />
</template><style scoped>
header {max-height: 100vh;line-height: 1.5;
}.logo {display: block;margin: 0 auto 2rem;
}nav {width: 100%;font-size: 12px;text-align: center;
}nav a.router-link-exact-active {color: var(--color-text);
}nav a.router-link-exact-active:hover {background-color: transparent;
}nav a {display: inline-block;padding: 0 1rem;border-left: 1px solid var(--color-border);
}nav a:first-of-type {border: 0;
}
</style>

5.src/views/AboutView.vue

<template><div> AboutView </div>
</template><script setup lang="ts">
defineOptions({ name: 'AboutView' })
</script><style lang="scss" scoped></style>

6.src/views/HomeView.vue

<template><div> HomeView </div>
</template><script setup lang="ts">
defineOptions({ name: 'HomeView' })
</script><style lang="scss" scoped></style>

文章demo参考github commit记录

https://github.com/kingHjp/my-vite-create-vue3/tree/dev

http://www.dtcms.com/a/168927.html

相关文章:

  • HarmonyOS NEXT第一课——HarmonyOS介绍
  • Java实现区间合并算法详解
  • 2025A卷华为OD机试真题-数组二叉树(C++/Java/Python)-100分
  • 学习springboot-条件化配置@Conditional(条件注解)
  • 数字智慧方案5872丨智慧交通解决方案(54页PPT)(文末有下载方式)
  • AI大模型-RAG到底能做些什么?
  • 镜像和容器的深度介绍和关系
  • 使用xlwings计算合并单元格的求和
  • 改进算法超详细:双变异樽海鞘群算法:从最优性能设计到分析
  • MySQL数据库上篇
  • 怎么实现动态提示词,并提升准确率
  • 【IPMV】图像处理与机器视觉:Lec9 Laplace Blending 拉普拉斯混合
  • 这款软件的第三方评测:功能、易用性与性能表现如何?
  • map和set的遗留 + AVL树(1):
  • K8S - StatefulSet 与 DaemonSet - 有状态应用部署与节点管理策略
  • [面试]SoC验证工程师面试常见问题(二)
  • PyTorch_创建张量
  • 浅谈SpringBoot框架中的单例bean
  • 【KWDB 创作者计划】利用KWDB解决工业物联网场景中的海量数据管理难题的思考
  • 代码随想录单调栈part2
  • C 语言 第五章 指针(6)
  • 网工_IP协议
  • 【算法基础】冒泡排序算法 - JAVA
  • 【质量管理】现代TRIZ问题识别中的功能分析——组件分析
  • 从零开始讲DDR(9)——AXI 接口MIG 使用(2)
  • 文章五《卷积神经网络(CNN)与图像处理》
  • 第 6 篇:AVL 树与 SB 树:不同维度的平衡探索 (对比项)
  • 【质量管理】现代TRIZ问题识别中的功能分析——相互接触分析
  • 滑动窗口leetcode 209和76
  • PostgreSQL自定义函数