Vue3 快速入门 (四) : 使用路由实现页面跳转

1. 本文环境

  • Vue版本 : 3.4.29
  • Node.js版本 : v20.15.0
  • 系统 : Windows11 64位
  • IDE : VsCode

2. vue 路由

Vue Router 是 Vue 官方的客户端路由解决方案。
客户端路由的作用是在单页应用 (SPA) 中将浏览器的 URL 和用户看到的内容绑定起来。当用户在应用中浏览不同页面时,URL 会随之更新,但页面不需要从服务器重新加载。

接下来,我们来介绍下,如何在Vue3中,使用路由。

2.1 安装vue 路由

npm install vue-router@4

2.2 新建router/index.ts

新建router文件夹,然后在此文件夹下新建index.ts文件

//创建一个路由器,并暴露出去//第一步 : 引入createRouter
import { createRouter, createWebHistory } from 'vue-router'//引入一个一个可以能要呈现的组件import Home from '@/components/Home.vue'
import News from '@/components/News.vue'
import About from '@/components/About.vue'//第二步 : 创建路由器
const router = createRouter({history : createWebHistory(), //路由器的工作模式routes : [ //一个个的路由规则{path:'/home',component:Home},{path:'/news',component:News},{path:'/about',component:About},]
})//暴露出去
export default router

2.3 引入路由器

修改main.ts,引入路由器

import './assets/main.css'//引入createApp用于创建应用
import { createApp } from 'vue'
//引入App根组件
import App from './App.vue'//引入路由器
import router from './router'//场景一个应用
let app = createApp(App)
//使用路由器
app.use(router)
// 挂在整个应用到app容器中
app.mount('#app')

2.4 新建Home.vue页面

<script setup lang="ts">
</script><template><div class="app"><div>Home</div></div>
</template><style scoped></style>

2.5 新建News.vue页面

<script setup lang="ts">
</script><template><div class="app"><div>News</div></div>
</template><style scoped></style>

2.6 新建About.vue页面

<script setup lang="ts">
</script><template><div class="app"><div>About</div></div>
</template><style scoped></style>

2.7 路由跳转

修改App.vue,点击RouterLink会跳转到相应的路由,改变的区域在RouterView

<script setup lang="ts">import { RouterLink,RouterView } from 'vue-router';
</script><template><div class="app"><h2>Vue路由测试</h2><!-- 导航区 --><div class="navigate"><RouterLink to="/home" active-class="select">首页</RouterLink><RouterLink to="/news" active-class="select">新闻</RouterLink><RouterLink to="/about" active-class="select">关于</RouterLink></div><!-- 展示区 --><div class="main-content"><RouterView></RouterView></div></div>
</template><style scoped>.select{font-size: 18px;background-color:red;}
</style>

2.8 传递参数

上面我们已经使用路由,实现了页面间的跳转。
比如跳转新闻的时候,我们想传递一个mykey的参数,就在URL中,跟上?mykey=luckey

<RouterLink to="/news?mykey=luckey" active-class="select">新闻</RouterLink>

在新闻页面News.vue中接收参数,这里通过useRoute()获取到路由,然后调用route.query.mykey获取到传参

<script setup lang="ts">import { useRoute } from 'vue-router';const route = useRoute();const mykey = route.query.mykey;console.log(mykey)
</script><template><div class="app"><div>News: {{mykey}}</div></div>
</template><style scoped></style>

2.9 点击Button的时候跳转路由

上文中是使用RouterLink组件来实现路由间的跳转,那如果想在button之类这种普通组件中,实现路由跳转,需要怎么做呢 ?
我们可以直接调用router.push(),传入路由URL,这样也能实现路由的跳转。

<script setup lang="ts">
import { useRouter } from 'vue-router';const router = useRouter();function goNews() {router.push("/news?mykey=luckey");
}
</script><template><button @click="goNews">跳转新闻</button>
</template>

3. vue路由相关文档

在 Vue 3 中,路由(Routing)用于定义应用程序中不同页面或视图之间的导航路径和规则。
更多vue的路由可以看以下网站 :
vue路由的官方文档
路由_基本切换效果

3. vue快速入门系列文

vue3 快速入门 (一) : 环境配置与搭建
vue3 快速入门 (二) : 第一个Vue网页
vue3 快速入门 (三) : vue中的图片路径
Vue3 快速入门 (四) : 使用路由实现页面跳转

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/873119.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中间件的理解

内容来源于学习网站整理。【一看就会】什么是前端开发的中间件&#xff1f;_哔哩哔哩_bilibili 每日八股文~白话说mq&#xff0c;消息中间件_哔哩哔哩_bilibili 例如&#xff1a; 1&#xff09;两个人打电话&#xff0c;中间的通信网络就是中间件。 2&#xff09;菜鸟驿站&…

npm、pnpm、yarn使用淘宝镜像

文章目录 npmpnpm安装方法Windows其它 设置镜像 yarn npm # 查询当前使用的镜像源 npm get registry# 设置为淘宝镜像源 npm config set registry https://registry.npmmirror.com/# 还原为官方镜像源 npm config set registry https://registry.npmjs.org/pnpm 安装方法 Wi…

MyBatis中的优点和缺点?

优点: 管 1.基于 SQL语句编程&#xff0c;相当灵活&#xff0c;不会对应用程序或者数据库的现有设计造成任何影响&#xff0c;SQL单独写&#xff0c;解除 sq!与程序代码的耦合&#xff0c;便于统一。 2.与JDBC 相比&#xff0c;减少了 50%以上的代码量&#xff0c;消除了 JDB…

流式数据库 |RisingWave 的架构、容错、数据持久化

在上一篇文章中&#xff0c;已经为大家分享了 RisingWave 相关核心概念和术语。本文将在此基础上为大家介绍 RisingWave 的架构、容错以及数据持久化。 1. 架构 RisingWave 的架构如下图所示。它由三个主要部分组成&#xff1a;Meta 节点、Compute 节点和 Compactor 节点。 …

【代码随想录算法训练营第42期 第一天 | LeetCode704. 二分查找、27. 移除元素】

代码随想录算法训练营第42期 第一天 | LeetCode704. 二分查找、27. 移除元素 一、704. 二分查找 解题代码C&#xff1a; class Solution { public:int search(vector<int>& nums, int target) {int l 0, r nums.size() - 1;while(l < r){int mid l r 1 >…

linux环境安装mongoDB

一、安装单体mogodb 目标&#xff1a;在Linux中部署一个单机的MongoDB&#xff0c;作为生产环境下使用。 提示&#xff1a;和Windows下操作差不多。 步骤如下&#xff1a; &#xff08;1&#xff09;先到官网下载压缩包 mongod-linux-x86_64-4.0.10.tgz 。 &#xff08;2&…

SpringBoot Bean管理

我们知道可以通过Spring当中提供的注解Component以及它的三个衍生注解&#xff08;Controller、Service、Repository&#xff09;来声明IOC容器中的bean对象&#xff0c;同时我们也学习了如何为应用程序注入运行时所需要依赖的bean对象&#xff0c;也就是依赖注入DI。 本篇主要…

c++初阶知识——内存管理与c语言内存管理对比

目录 前言&#xff1a; 1.c&#xff0b;&#xff0b;内存管理方式 1.1 new和delete操作自定义类型 2.operator new与operator delete函数 2.1 operator new与operator delete函数 3.new和delete的实现原理 3.1 内置类型 3.2 自定义类型 new的原理 delete的原理 new…

Oracle12c及更高版本中引入的新特性CDB数据库容器和PDB可插拔数据库

Oracle的CDB&#xff08;Container Database&#xff0c;数据库容器&#xff09;和PDB&#xff08;Pluggable Database&#xff0c;可插拔数据库&#xff09;是Oracle 12c及更高版本中引入的新特性&#xff0c;旨在支持多租户环境&#xff08;Multitenant Environment&#xff…

python取色器

本文使用创作助手。 要在Python中识别图片的颜色&#xff0c;你可以使用PIL&#xff08;Python Imaging Library&#xff09;库。以下是一种基本的方法来识别图片中的颜色&#xff1a; from PIL import Imagedef get_image_colors(image_path):# 打开图片image Image.open(i…

gite+picgo+typora打造个人免费笔记软件

文章目录 1️⃣个人笔记软件2️⃣ 配置教程2.1 使用软件2.2 node 环境配置2.3 软件安装2.4 gite仓库设置2.5 配置picgo2.6 测试检验2.7 github教程 &#x1f3a1; 完结撒花 1️⃣个人笔记软件 最近换了环境&#xff0c;没有之前的生产环境舒适&#xff0c;写笔记也没有劲头&…

图——图的遍历(DFS与BFS算法详解)

前面的文章中我们学习了图的基本概念和存储结构&#xff0c;大家可以通过下面的链接学习&#xff1a; 图的定义和基本术语 图的类型定义和存储结构 这篇文章就来学习一下图的重要章节——图的遍历。 目录 一&#xff0c;图的遍历定义&#xff1a; 二&#xff0c;深度优先…

【代码随想录】【算法训练营】【第58天 2】 [卡码102]沉没孤岛

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 卡码网。 day 58&#xff0c;周四&#xff0c;ding~ 题目详情 [卡码102] 沉没孤岛 题目描述 卡码102 沉没孤岛 解题思路 前提&#xff1a;修改孤岛的值 思路&#xff1a;DFS or BFS&#xff0c;使用visite…

探寻大模型回答9.9和9.11犯错的根本原因

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

每日OJ_牛客_排序子序列

目录 牛客_排序子序列 题解及代码 牛客_排序子序列 排序子序列_牛客笔试题_牛客网 题解及代码 本题依次比较整个数组 v[i1]>v[i] &#xff0c;则进入非递减序列判断&#xff0c;直到遍历到下一个值不大于等于为止count&#xff0c;然后进行下一位置的判断v[i1]<v[i]…

算法之判断对称二叉树

94. 二叉树的中序遍历101. 对称二叉树 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#xff1a;fa…

特斯拉新一代人形机器人Optimus二代:听说行走速度能够提升30%?

在当今这个快速变化的时代&#xff0c;人工智能已成为我们探索未来的一大驱动力。特斯拉以其在电动汽车领域的创新而闻名&#xff0c;而Optimus智能机器人的发布&#xff0c;更是将这种创新精神带到了一个新的领域 1. 智能机器人&#xff1a;Optimus的起源 2021年8月&#xff…

lua 游戏架构 之 TablePool`对象池

定义一个名 TablePool class&#xff0c;用于管理一个对象池。对象池是一种用于优化内存使用的技术&#xff0c;通过重用对象而不是频繁地创建和销毁对象&#xff0c;从而减少内存分配和垃圾回收的开销。 设计思路 1. **初始化**&#xff1a; - initialize 方法初始化对象…

虚拟摄像头怎么用?安卓虚拟相机替换本地摄像头教程(内含3个虚拟摄像头)

虚拟摄像头是一个软件摄像机&#xff0c;电脑没有物理摄像头时可以借助虚拟摄像头进行视频通话。当我们电脑没有自带的摄像头时&#xff0c;必须要外接摄像头才可以进行网络会议、视频直播。普通的摄像头像素不高&#xff0c;直接将手机充当电脑摄像头效果更佳哦。 虚拟摄像头我…

自动驾驶算法——Vehicle Control(一)

“ 在过去的几年里&#xff0c;无人驾驶汽车已成为人工智能领域的主要主力之一。鉴于交通死亡人数众多、老年人和残疾人的行动能力有限以及交通拥堵和拥堵问题日益严重&#xff0c;自动驾驶汽车有望解决我们社会最重要的问题之一&#xff1a;移动的未来。然而&#xff0c;让汽车…