Vue3开发极简入门(10):路由&嵌套路由
zhezhongyun 2025-05-26 20:13 12 浏览
电脑完蛋了,好不容易抢回来的文档
安装
npm install vue-router@4
这是创建了一个项目之后,再添加路由的办法。一般来说都是项目初始化的时候就添加路由,可以看Vue3开发极简入门(1):初始化
上面在问的时候,“是否引入 Vue Router 进行单页面应用开发?”,选“是”即可。
路由配置
新增文件src/router/index.ts:
import { createRouter, createWebHashHistory } from "vue-router";
import Car from '@/components/Car.vue';
import Driver from '@/components/Driver/index.vue'
import Applicant from '@/components/Applicant.vue'
import Staff from "@/views/Staff.vue";
import StaffInfo from "@/views/StaffInfo.vue";
const routes = [
{ path: '/', name: "index", component: Car },
{ path: '/driver', name: "driver", component: Driver },
{ path: '/applicant', name: "applicant", component: Applicant },
{
path: '/staff',
name: "staff",
component: Staff,
children: [
{
path: 'info',
name: "staffInfo"
}
]
}
]
const router = createRouter({
history: createWebHashHistory(),
routes,
})
export default router
说明:
- Car、Driver、Applicant是之前写的页面组件,在第一篇开头就说了,按照现行约定和最佳实践,这几个应该放在view或pages目录下面,components应该放一些可复用的组件,当时就是纯省事儿,放components了。后面的Staff、StaffInfo是为了本节内容新写的,就放views了。我这边也是为省事,以前的就不挪了。
- 这个代码应该是很清晰了,路由、嵌套路由(children),都不用解释。
- 我设置了Car的path为“/”。如果整个系统没有一个路径为“/”的组件,控制台会报
[Vue Router warn]: No match found for location with path "/";
其实倒没啥影响。
- 每个路由都配了name,是选配,但是在路由传参的时候很重要,建议都配上,详情后叙。
- 嵌套路由的path,最前面不用“/”。
- 嵌套路由的写法很重要,大家注意一下,详情后叙。
- history: createWebHashHistory()。是个关键点。这是不同的历史模式。
Memory模式(createMemoryHistory)。适合Node、SSR(服务端渲染),不推荐(但也可以)在浏览器应用中使用。
Hash模式(createWebHashHistory)。URL上会带一个#。对SEO不好,但是不需要对服务器层面进行特殊处理。如果是ToC的页面,不建议使用。本文采用此模式。
HTML5模式(createWebHistory)。URL不会带#,对SEO有好,但是需要根据服务器(Apache、Nginx、IIS等)的不同进行相应的配置,官网有说明,这也是服务端运维的知识点,本文不赘述。
修改main.ts:
import './assets/main.css'
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
createApp(App).use(router).mount('#app')
很简单,不解释。
修改App.vue:
<template>
<div id="app">
<header class="banner">
<h1>B端管理系统</h1>
</header>
<main class="container">
<aside class="sidebar">
<nav>
<ul>
<li><RouterLink to="/" active-class="activeLink">首页</RouterLink></li>
<li><RouterLink :to="{name:'driver'}" active-class="activeLink">司机管理</RouterLink></li>
<li><RouterLink :to="{path:'/applicant'}" active-class="activeLink">人员管理</RouterLink></li>
<li><RouterLink :to="{path:'/staff'}" active-class="activeLink">员工管理</RouterLink></li>
<!-- 添加更多导航项 -->
</ul>
</nav>
</aside>
<section class="content">
<RouterView/>
</section>
</main>
</div>
</template>
<script lang="ts" setup name="App">
</script>
<style scoped>
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
.banner {
background-color: #42b983;
color: white;
width: 100%;
padding: 20px;
text-align: center;
position: fixed;
top: 0;
left: 0;
z-index: 1000;
}
.container {
display: flex;
margin-top: 60px;
height: calc(100vh - 120px);
width: 1024px;
}
.sidebar {
width: 250px;
background-color: #34495e;
color: white;
padding: 20px;
box-sizing: border-box;
}
.sidebar nav ul {
list-style-type: none;
padding: 0;
}
.sidebar nav ul li {
margin: 15px 0;
}
.content {
flex: 1;
padding: 20px;
box-sizing: border-box;
overflow-y: auto;
background-color: #ecf0f1;
}
.activeLink{
color: white;
}
</style>
- 样式是我网上瞎找的,不重要,一般都会用现有的UI框架(Element Plus等)。
- RouterView,也可以写作<router-view></router-view>。就是显示组件的区域,有点类似于以前的iframe。
- RouterLink,也可以写作<router-link></router-link>,就好像a标签一样。跳转页面的写法有:
to="path"。
:to="{name:'路由配置的name'}"。
:to="{name:'路由配置的path'}"。
至此,就可以通过点击,跳转至对应的组件了。Staff、StaffInfo后面讲传参的时候用。
相关推荐
- Angular UI组件库入门指南 - 如何安装和开始使用(一)
-
本文主要介绍如何安装和开始使用KendoUIforAngular。首先完成安装步骤。然后创建一个简单的应用程序,其中包含一些KendoUIforAngular组件,应用程序源代码可供您参考...
- SPSS22: 3.1.3 数据管理—复制数据属性
-
内容摘自《SPSS常用统计分析教程(SPSS22.0中英文版)(第4版)》3.1.3复制数据属性复制数据属性(CopyDataProperties)可用于建立相同调查问卷的空白数据集,或者复制其...
- 妙用Excel制作漂亮工整的工资条(excel表格中如何制作工资条)
-
工资条的制作方法并不难,但如何用Excel把工资条做得更美观、更有效率,可就要花费一点小心思了。许多人或许已经习惯了用工资明细表做员工工资统计并向上级汇报,将表中的条目慢慢复制粘贴然后打印给员工,这样...
- 如何运用EXCEL制作员工工资条,你造吗?
-
每个月工资发放之后,正规的公司应发给每个员工一个工资条。上面有员工当月工资的详细构成。但不能将工资明细表剪条发放,因为每个数字缺少对应项目,这就需要重新制作一张专门用来打印的工资条。作为劳动者,应该妥...
- 鸿蒙仓颉语言开发实战教程:实现商品分类页
-
今天继续为大家带来仓颉语言开发商城应用的实战教程,今天的内容是实现商品分类页。分类页面要在基本布局的基础上增加一些动态效果,比如点击状态的切换和两个列表容器的联动。下面为大家详细介绍。分类列表先来看左...
- 鸿蒙开发实战:一多开发之缩放布局
-
在HarmonyOS中,使用ArkTS语法进行自适应布局时,缩放布局是一种重要的布局方式。它允许组件根据外部容器的尺寸变化,按照预设的比例或权重调整自身的大小,从而确保在不同设备上都能呈现出良好的视觉...
- 基于WPF的电能质量检测系统上位机软件设计
-
郑恒持,蒋丁宇,卢兴泉,刘泊江(大连海事大学轮机工程学院,辽宁大连116026)摘要:电能质量直接影响着电力系统能否安全运行,为了能及时可靠地检测电能质量,采用全新的WindowsPresen...
- HarmonyOS实战:Tab顶部滑动悬停功能实现
-
前言日常开发过程中,遇到这种Scroll嵌套List列表滑动顶部悬停的场景十分常见,在鸿蒙开发时也正好实现了这个功能,本篇文章将带你一步步实现Tab顶部悬停的效果,建议点赞收藏!实现效果先...
- Axure教程:高级搜索(axure搜索功能怎么做)
-
在原型中,搜索是一个常见的交互设计。但不少同学因为技能不熟悉就没有做对应的交互效果。这篇文章,作者分享了设计搜索功能的整个流程,相信看完你也能做一个很牛逼的交互。高级搜索可以通过使用精确的关键词或短语...
- Excel小技巧: 如何设置自动列宽适应内容
-
我们在整理Excel表格的时候,通常会碰到单元格列宽混乱的情况(如下图所示),这会导致数据显示不完整或浪费空间导致打印不全,每次手动调整列宽都会费时费力,下面教你三个方法,让你一键设置自动列宽,适应单...
- 用好6个公式 Excel随意查询(excel中查询功能怎么用公式)
-
Excel表格一般会储存大量数据,我们可能不是每次都需要使用其中的所有数据,大部分时候只用到其中的一部分,所以数据查询功能就变得非常重要。为此,Excel本身也提供了多少查询方法,供我们使用。首先我们...
- 夏日PC消暑指南:机箱风道与风扇选择
-
进入六月以后北京的天气真是热得让人感觉喘不过气,大家天天打交道的笔记本和台式机更是连人都不如了,所谓热成狗真是一点也不夸张。年年大家在防暑抗高温这个问题上都是八仙过海各显神通,但是很多人光顾着自己凉快...
- Excel VBA必学技巧:用厘米设置单元格大小,办公效率翻倍
-
痛点:Excel默认单位太反人类!你是否经常遇到这些问题:-想设置精确的单元格尺寸,却只能用模糊的"字符宽度"和"磅值"?-设计打印报表时,毫米级的误差导致格式错乱...
- CSS小知识,分享14个你可能还未用上但又实用的CSS属性(下)
-
大家好,在上一篇文章里CSS小知识,分享14个你可能还未用上但又实用的CSS属性(上)我们一起学习了上半部分,这篇文章我们我们继续学习下半部分。八、CSSShakeEffect晃动效果CSS...
- 总结雅虎前端性能优化技巧(16条)(雅虎引擎还能用吗)
-
前言在日常开发中,有很多场景需要我们去做好前端优化,为了防止遗忘,加深记忆,今天参阅了一些资料以及自己的一些总结,梳理出来15条优化技巧。1.合并文件css、js合并,减少http请求数,每次http...
- 一周热门
- 最近发表
- 标签列表
-
- HTML 教程 (33)
- HTML 简介 (35)
- HTML 实例/测验 (32)
- HTML 测验 (32)
- JavaScript 和 HTML DOM 参考手册 (32)
- HTML 拓展阅读 (30)
- HTML常用标签 (29)
- HTML文本框样式 (31)
- HTML滚动条样式 (34)
- HTML5 浏览器支持 (33)
- HTML5 新元素 (33)
- HTML5 WebSocket (30)
- HTML5 代码规范 (32)
- HTML5 标签 (717)
- HTML5 标签 (已废弃) (75)
- HTML5电子书 (32)
- HTML5开发工具 (34)
- HTML5小游戏源码 (34)
- HTML5模板下载 (30)
- HTTP 状态消息 (33)
- HTTP 方法:GET 对比 POST (33)
- 键盘快捷键 (35)
- 标签 (226)
- HTML button formtarget 属性 (30)
- CSS 水平对齐 (Horizontal Align) (30)