当前位置: 首页 > 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

相关文章:

  • 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
  • 我的诗歌阅读史
  • 最火“五一”预订!小长假前两日多地接待游客量两位数增长,出境游订单井喷
  • 言短意长|今年五一假期的一个新变化
  • 亚马逊一季度利润增超六成:云业务增速放缓,警告关税政策或影响业绩指引
  • 李在明回应韩国大法院判决:与自己所想截然不同,将顺从民意
  • 近七成科创板公司2024年营收增长,285家营收创历史新高