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

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.xdnf.cn/news/3549.html

相关文章:

  • TS 安装
  • 仿腾讯会议——注册登录实现
  • AI算法可视化:如何用Matplotlib与Seaborn解释模型?
  • Bootstrap(自助法)​​:无需假设分布的统计推断工具
  • 「Mac畅玩AIGC与多模态13」开发篇09 - 基于多插件协同开发智能体应用(天气+名言查询助手)
  • DeepSeek实战--各版本对比
  • 【AI科技】AMD ROCm 6.4 新功能:突破性推理、即插即用容器和模块化部署,可在 AMD Instinct GPU 上实现可扩展 AI
  • [原创](现代Delphi 12指南):[macOS 64bit App开发]: [2]如何使用跨平台消息框?
  • 低代码/AI是否会取代前端开发?
  • C++之类和对象基础
  • 开启 Spring AI 之旅:从入门到实战
  • 【c++】【STL】priority_queue详解
  • 网络原理 - 13(HTTP/HTTPS - 4 - HTTPS)
  • 敏感词 v0.25.0 新特性之 wordCheck 策略支持用户自定义
  • Linux52 运行百度网盘 解决故障无法访问repo nosandbox 未解决:疑似libstdc++版本低导致无法运行baidu网盘
  • 兰亭妙微分享:B 端设计如何实现体验跃迁
  • [吾爱出品] 网文提取精灵_4.0
  • 2.4 GHz频段的11个信道通过 5 MHz中心频率间隔 实现覆盖
  • 开闭原则(OCP)
  • Qt/C++开发监控GB28181系统/云台控制/获取预置位信息/添加删除调用预置位
  • 为美好的XCPC献上典题 ABC359 G - Sum of Tree Distance(根号分治)
  • JVM性能调优的基础知识 | JVM内部优化与运行时优化
  • 3033. 修改矩阵
  • 2025年- H19-Lc127-48.旋转矩阵(矩阵)---java版
  • Rust 学习笔记:关于枚举与模式匹配的练习题
  • 菜鸟之路Day29一一MySQL之DDL
  • LeetCode 560. 和为 K 的子数组 | 前缀和与哈希表的巧妙应用
  • [machine learning] Transformer - Attention (一)
  • 第5篇:EggJS中间件开发与实战应用
  • 【计算机网络网络层深度解析】从IP协议到路由优化