Vue 3 30天精进之旅:Day 07 - Vue Router
引言
在前几天的学习中,我们深入探讨了Vue的表单输入绑定及其处理机制。今天,我们将学习Vue Router,这是Vue.js官方提供的路由管理器,用于构建单页面应用(SPA)。通过使用Vue Router,你可以轻松地实现页面之间的切换,管理URL并保持应用的状态。
1. 什么是Vue Router?
Vue Router是Vue.js的官方路由管理器,它用于在单页面应用中实现路由功能。通过Vue Router,你可以定义不同的路由,每个路由对应一个组件,使得用户能够在不重新加载页面的情况下浏览不同的视图。
2. 安装和配置Vue Router
首先,我们需要在我们的Vue项目中安装Vue Router。以下是安装和基本配置的步骤:
2.1 安装Vue Router
在项目根目录下运行以下命令:
npm install vue-router@4
2.2 创建路由配置
在src目录下创建一个名为router的文件夹,并在该文件夹中创建一个名为index.js的文件。然后在index.js中定义路由配置:
import { createRouter, createWebHistory } from 'vue-router';
import Home from '../views/Home.vue';
import About from '../views/About.vue';const routes = [{path: '/',name: 'Home',component: Home,},{path: '/about',name: 'About',component: About,},
];const router = createRouter({history: createWebHistory(),routes,
});export default router;
3. 创建视图组件
在src/views目录下创建两个新文件:Home.vue和About.vue。
3.1 Home.vue
<template><div><h1>首页</h1><p>欢迎来到我们的应用!</p></div>
</template><script>
export default {name: 'Home',
};
</script><style scoped>
h1 {color: #42b983;
}
</style>
3.2 About.vue
<template><div><h1>关于我们</h1><p>这是一个关于我们的应用的页面。</p></div>
</template><script>
export default {name: 'About',
};
</script><style scoped>
h1 {color: #42b983;
}
</style>
4. 在主应用中使用Vue Router
接下来,我们需要在src/main.js文件中引入并使用Vue Router。修改src/main.js如下:
import { createApp } from 'vue';
import App from './App.vue';
import router from './router/index.js'; // 引入路由配置createApp(App).use(router) // 使用路由.mount('#app');
5. 添加路由链接
为了在不同的路由之间进行导航,我们可以使用<router-link>组件。修改src/App.vue如下:
<template><div id="app"><nav><router-link to="/">首页</router-link><router-link to="/about">关于</router-link></nav><router-view></router-view> <!-- 渲染匹配的组件 --></div>
</template><script>
export default {name: 'App',
};
</script><style>
nav {margin-bottom: 20px;
}router-link {margin-right: 10px;
}
</style>
在这个示例中,<router-link>用来创建导航链接,而<router-view>用以渲染匹配的视图组件。
6. 路由的嵌套和动态路由
6.1 嵌套路由
你可以创建嵌套路由,以便在一个视图中显示多个层级的组件。下面是如何创建嵌套路由的示例。首先,在src/views目录下创建一个名为User.vue的组件:
<template><div><h1>用户页面</h1><router-link to="profile">查看个人资料</router-link><router-link to="settings">设置</router-link><router-view></router-view> <!-- 渲染嵌套的路由组件 --></div>
</template><script>
export default {name: 'User',
};
</script>
然后,创建两个新组件:Profile.vue和Settings.vue,并在router/index.js中配置嵌套路由:
import Profile from '../views/Profile.vue';
import Settings from '../views/Settings.vue';// 在routes数组中添加User路由
const routes = [// 之前的路由...{path: '/user',name: 'User',component: User,children: [{path: 'profile',name: 'Profile',component: Profile,},{path: 'settings',name: 'Settings',component: Settings,},],},
];
7. 处理路由参数
你可以在路由中定义动态参数,以便在URL中传递信息。例如,如果你想创建一个用户详情页面,可以创建一个动态路由:
{path: '/user/:id',name: 'UserDetail',component: UserDetail,
}
然后在UserDetail组件中,你可以通过this.$route.params.id访问该参数。
8. 实践:构建一个简单的导航应用
为了巩固今天的学习,我们将构建一个简单的导航应用,用户可以在首页和关于页面之间切换,以及访问用户页面。
<template><div id="app"><nav><router-link to="/">首页</router-link><router-link to="/about">关于</router-link><router-link to="/user">用户</router-link></nav><router-view></router-view></div>
</template><script>
export default {name: 'App',
};
</script><style>
nav {margin-bottom: 20px;
}
</style>
在router/index.js中,添加新的路由和组件。
9. 总结
今天我们深入学习了Vue Router的基本概念与用法,包括如何安装和配置路由、创建路由链接、嵌套路由及动态路由参数。通过构建简单的导航应用,我们巩固了对路由管理的理解,并为构建更复杂的单页面应用打下了基础。
相关文章:
Vue 3 30天精进之旅:Day 07 - Vue Router
引言 在前几天的学习中,我们深入探讨了Vue的表单输入绑定及其处理机制。今天,我们将学习Vue Router,这是Vue.js官方提供的路由管理器,用于构建单页面应用(SPA)。通过使用Vue Router,你可以轻松…...
lib.exe正确用法winhv.lib生成方法
lib.exe /def:winhv.def /OUT:winhv.lib /machine:x64 winhv.def注意是 winhv.sys要不然会变成dll LIBRARY winhv.sys EXPORTSWinHvAllocateOverlayPagesWinHvDisablePartitionVtlWinHvDisableVpVtlWinHvEnablePartitionVtlWinHvEnableVpVtlWinHvFreeOverlayPagesWinHvGetCurr…...
react-bn-面试
1.主要内容 工作台待办 实现思路: 1,待办list由后端返回,固定需要的字段有id(查详细)、type(本条待办的类型),还可能需要时间,状态等 2,一个集中处理待办中转路由页,所有待办都跳转到这个页面…...
Spring Boot Actuator 集成 Micrometer(官网文档解读)
目录 概述 实现 Observation 可观测性 Observation 功能核心类 ObservationPredicate GlobalObservationConvention ObservationFilter ObservationHandler ObservationRegistryCustomizer Observation 相关注解 多线程处理机制 配置上下文传播 常用标签配置 Open…...
Kotlin函数式API
Kotlin函数式API 1.maxBy val list listOf("Apple","Banana", "Orange","pear","Grape","Watermelon") val maxLengthFruit list.maxBy {it.length} println(maxLengthFruit) 2.map 集合中zhi的map函数是最…...
Linux:一切皆文件
**文件描述符**:它是一种特殊的索引,本质上是进程中file_struct结构体成员fd_array数组的下标。在Linux等系统中,文件描述符是一个非负整数,用于标识打开的文件,是内核为了高效管理已被打开的文件所创建的索引。通过文…...
【物联网】ARM核常用指令(详解):数据传送、计算、位运算、比较、跳转、内存访问、CPSR/SPSR、流水线及伪指令
文章目录 指令格式(重点)1. 立即数2. 寄存器位移 一、数据传送指令1. MOV指令2. MVN指令3. LDR指令 二、数据计算指令1. ADD指令1. SUB指令1. MUL指令 三、位运算指令1. AND指令2. ORR指令3. EOR指令4. BIC指令 四、比较指令五、跳转指令1. B/BL指令2. l…...
项目集成Nacos
文章目录 1.环境搭建1.创建模块 sunrays-common-cloud-nacos-starter2.目录结构3.pom.xml4.自动配置1.NacosAutoConfiguration.java2.spring.factories 5.引入cloud模块通用依赖 2.测试1.创建模块 sunrays-common-cloud-nacos-starter-demo2.目录结构3.pom.xml4.application.ym…...
QT交叉编译环境搭建(Cmake和qmake)
介绍一共有两种方法(基于qmake和cmake): 1.直接调用虚拟机中的交叉编译工具编译 2.在QT中新建编译套件kits camke和qmake的区别:CMake 和 qmake 都是自动化构建工具,用于简化构建过程,管理编译设置&…...
【某大厂一面】数组和链表区别
在 Java 中,数组(Array)和链表(LinkedList)是两种常见的数据结构,它们在存储和操作方式上有显著的区别。了解它们的差异有助于选择适合特定应用场景的结构。下面是数组和链表之间的详细比较。 1. 存储结构…...
基于 Jenkins 的测试报告获取与处理并写入 Jira Wiki 的技术总结
title: 基于 Jenkins 的测试报告获取与处理并写入 Jira Wiki 的技术总结 tags: - jenkins - python categories: - jenkins在软件开发的持续集成与持续交付(CI/CD)流程里,及时、准确地获取并分析测试报告对保障软件质量至关重要。本文将详细…...
一文大白话讲清楚webpack进阶——5——dev-server原理及其作用
文章目录 一文大白话讲清楚webpack进阶——5——dev-server原理及其作用1. webpack的作用2. dev-server的作用3. dev-server的原理3.1 啥是webpack-dev-middleware3.2 HMR 一文大白话讲清楚webpack进阶——5——dev-server原理及其作用 1. webpack的作用 webpack的作用我们之…...
[cg] 使用snapgragon 对UE5.3抓帧
最近想要抓opengl 的api,renderdoc在起应用时会闪退(具体原因还不知道),试了下snapgraon, 还是可以的 官网需要注册登录后下载,官网路径:Developer | Qualcomm 为了方便贴上已经下载好的exe安装包&#x…...
Java学习教程,从入门到精通,JDBC插入记录语法及案例(104)
JDBC插入记录语法及案例 一、JDBC插入记录语法 在JDBC中,插入记录主要通过执行SQL的INSERT语句来实现。其基本语法如下: INSERT INTO 表名 (列1, 列2, ..., 列n) VALUES (值1, 值2, ..., 值n);表名:需要插入记录的表的名称。列1, 列2, …,…...
物业巡更系统在现代社区管理中的优势与应用探讨
内容概要 在现代社区管理中,物业巡更系统正逐渐成为一种不可或缺的工具。结合先进的智能技术,这些系统能够有效地提升社区管理的各个方面,尤其是在巡检效率和信息透明度方面。通过实时记录巡检数据,物业管理人员能够确保工作人员…...
速通Docker === Docker Compose
目录 Docker Compose 简介 Docker Compose 常用命令 使用 Docker Compose 启动 WordPress 普通启动方式(使用 Docker 命令) 使用 Docker Compose 启动 Docker Compose 的特性 Docker Compose 简介 Docker Compose 是一个用于定义和运行多容器 Dock…...
数据流中的第 K 大元素(703)
703. 数据流中的第 K 大元素 - 力扣(LeetCode) 解答: class KthLargest { public: //使用nums作为_q的底层存储,节省内存 KthLargest(int k, vector<int>& nums) : _k(k),…...
面试被问的一些问题汇总(持续更新)
天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…...
Spring MVC 综合案例
目录 一. 加法计算器 1. 准备工作 2. 约定前后端交互接口 需求分析 接口定义 3. 服务器端代码 4. 运行测试 二. 用户登录 1. 准备工作 2. 约定前后端交互接口 需求分析 接口定义 (1) 登录界面接口 (2) 首页接口 3. 服务器端代码 4. 运行测试 三. 留言板 1. 准备…...
数据分析系列--③RapidMiner算子说明及数据预处理
一、算子说明 1 新建过程 2 算子状态灯 状态灯说明: (1)状态指示灯: 红色:指示灯说明有参数未被设置或输入端口未被连接等问题; 黄色:指示灯说明还未执行算子,不管配置是否基本齐全; 绿色:指示灯说明一切正常,已成功执行算子。 (2)三角…...
NLP自然语言处理通识
目录 ELMO 一、ELMo的核心设计理念 1. 静态词向量的局限性 2. 动态上下文嵌入的核心思想 3. 层次化特征提取 1. 双向语言模型(BiLM) 2. 多层LSTM的层次化表示 三、ELMo的运行过程 1. 预训练阶段 2. 下游任务微调 四、ELMo的突破与局限性 1. 技术突破 2. …...
Time Constant | RC 和 RL 电路中的时间常数
注:本文为 “Time Constant” 相关文章合辑。 机翻,未校。 How To Find The Time Constant in RC and RL Circuits June 8, 2024 💡 Key learnings: 关键学习点: Time Constant Definition: The time constant (τ) is define…...
无心剑七绝《除夕快乐》
七绝除夕快乐 除旧迎新瑞气扬 夕阳烂漫映红妆 快言美酒佳肴味 乐享天伦福满堂 2025年1月28日 平水韵七阳平韵 无心剑这首七绝以“除夕快乐”为题,巧妙地运用了藏头手法,将“除夕快乐”四字分别嵌入诗的每一句首字,构思精巧,富有新…...
Object类(3)
大家好,今天继续给大家介绍一下object类中的方法,那么话不多说,来看。 hashcode()这个方法,帮我们算了一个具体的对象位置,这里面涉及到数据结构,简单认为它是个内存地址,然后调用Integer.toHexString ()将这个地址以16进制输出。 该方法是一…...
Vue.js组件开发-实现下载动态进度条
在Vue.js中,可以通过创建一个自定义组件来实现下载动态进度条。这个组件可以接收下载的进度作为prop,并根据这个进度动态地更新进度条。 首先 需要创建一个Vue组件,比如DownloadProgressBar.vue: <template><div clas…...
GPU上没程序在跑但是显存被占用
原因:存在僵尸线程,运行完但是没有释放内存 查看僵尸线程 fuser -v /dev/nvidia*关闭僵尸线程 pkill -9 -u 用户名 程序名 举例:pkill -9 -u grs python参考:https://blog.csdn.net/qq_40206371/article/details/143798866...
2007-2020年各省国内专利申请授权量数据
2007-2020年各省国内专利申请授权量数据 1、时间:2007-2020年 2、来源:国家统计局、统计年鉴 3、指标:行政区划代码、地区名称、年份、国内专利申请授权量(项) 4、范围:31省 5、指标解释:专利是专利权的简称&…...
常见端口的攻击思路
端口号端口说明攻击方向21/22/69FTP/TFTP文件传输协议匿名上传/下载、嗅探、爆破2049NFS服务配置不当139Sanba服务爆破、远程代码执行389Ldap目录访问协议注入、匿名访问、弱口令22SSH远程连接爆破、SSH映射隧道搭建、文件传输23Telnet远程连接爆破、嗅探、弱口令3389RDP远程桌…...
python:洛伦兹变换
洛伦兹变换(Lorentz transformations)是相对论中的一个重要概念,特别是在讨论时空的变换时非常重要。在四维时空的背景下,洛伦兹变换描述了在不同惯性参考系之间如何变换时间和空间坐标。在狭义相对论中,洛伦兹变换通常…...
电路研究9.2.3——合宙Air780EP中FTP——FTPGET 命令使用方法研究
怎么说呢,之前也是看的,但是也很迷茫,感觉上虽然是对的,但是无法联系到应用里面,今天研究一下FTP 命令使用方法吧。 15.29 使用方法举例 这里发现下面那些看的不懂呢,于是就返回FTP的应用了。 9.5.4 FTP 应…...
