Vue3 --- 路由

  1. 路由就是一组key-value的对应关系;
  2. 多个路由,需要经过路由器的管理。

1. 基本切换效果

安装路由器

npm i vue-router

@/router/index.ts

// 
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},]
})// 暴漏出去router
export default router

main.ts

app.use(router)

2. 两个注意点

  1. 路由组件通常存放在pages或views文件夹,一般组件通常存放在components文件夹。
  2. 通过点击导航,视觉效果上“消失”了的路由组件,默认是被销毁掉的,需要的时候再去挂载。

一般组件:自己亲手写出来的 < Demo />
路由组件:靠路由的规则渲染出来的
在这里插入图片描述

3. 路由器工作模式

  1. history
    在这里插入图片描述
  • 优点:URL更加美观,不带有#,更接近传统的网站URL。

  • 缺点:后期项目上线,需要服务端配合处理路径问题,否则刷新会有404错误。

const router = createRouter({
history:createWebHistory(),//history模式
/******/
} )
  1. hash
    在这里插入图片描述
  • 优点:兼容性更好,因为不需要服务器端处理路径。
  • 缺点:URL带有#不太美观,且在SEO优化方面相对较差
const router = createRouter({
history:createWebHashHistory(), //hash模式
/******/
})

4. to的两种写法

  1. 字符串写法
 <RouterLink to="/news" active-class="active">新闻</RouterLink>
  1. 对象写法
<RouterLink :to="{path:'/about'}" active-class="active">关于</RouterLink>

也可以给路由添加名字,通过名字找到它

<RouterLink :to="{name:'shouye'}" active-class="active">关于</RouterLink>

5. 嵌套路由

routes: [{path: '/home',component:Home},{path: '/news',component: News,// 嵌套路由children: [{path: 'detail', // 子级不需要'/'component:New1}]},{path: '/about',component:About},]

6. 路由参数

  1. query
    第一种写法:使用模板字符串
<RouterLink :to="`/news/detail?id=${item.id}&message=${item.message}`">{{ item.title }}</RouterLink>

第二种写法:

<RouterLink :to="{path: '/news/detail',// name:'xiangqing'query: {id: item.id,message: item.message}}">{{ item.title }}</RouterLink>
  1. params
    子组件路由:需要使用/:xx进行占位
children: [{name:'xiangqing',path: 'detail/:id/:message/:content?',// content可传可不传component:Detail}]

第一种写法:

<RouterLink :to="`/news/detail/${item.id}/${item.message}`">{{ item.title }}</RouterLink>

第二种写法:

 <RouterLink :to="{name: 'xiangqing',params: {id: item.id,message: item.message}}">{{ item.title }}</RouterLink>

注意:

  1. 参数不能是对象和数组;
  2. 使用params参数,path需要占位;并且在使用对象写法时不能使用path,只能使用name

7. 路由的props配置

在路由规则中设置props
作用:让路由组件更方便的收到参数(可以将路由参数作为props传给组件)

{path: '/news',component: News,// 嵌套路由children: [{name:'xiangqing',path: 'detail/:id/:message',component:Detail,props:xxxx}]}

props的三种写法:

  1. 将路由收到的所有params参数作为props传给路由组件
props:true
  1. 函数写法,自己决定将什么作为props传给路由组件
props(route){return route.query //如果使用params参数那一般使用第一种形式设置props配置
}
  1. 对象写法,自己决定将什么作为props传给路由组件
props{a:100,b:200

8. 路由的repalce配置

浏览器的路由模式有push和replace两种,默认为push模式(可前进可后退);replace模式不能前进或后退。

<RouterLink replace :to="`/news/detail/${item.id}/${item.message}`">{{ item.title }}</RouterLink>

9. 编程式导航

编程式导航 ---- 脱离< RouterLink >实现路由跳转

import { onMounted } from 'vue'
import { useRouter } from 'vue-router'const router = useRouter()onMounted(()=> {setTimeout(() => {router.push('/news')},3000)
})

使用场景:

  1. 登录成功自动跳转;
  2. 鼠标划过跳转页面

10. 重定向

在路由规则处设置:

{path: '/',redirect:'/home'}

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

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

相关文章

Python面试整理-字典和集合的操作

在Python中,字典(dictionary)和集合(set)是两种非常有用的数据结构,用于存储和操作数据集。字典是一种键值对的集合,而集合是一种只包含唯一元素的集合。下面详细介绍它们的常用操作: 字典操作 创建字典 person = {"name": "Alice",

萝卜快跑爆火的背后,美格智能如何助力无人车商业化?

近期&#xff0c;“订单量超过600万单”等夺人眼球的信息&#xff0c;让无人驾驶出租车“萝卜快跑”从江城武汉爆火出圈&#xff0c;在2024年的炎炎夏日为这座大火炉再添了一把火。热度背后&#xff0c;不少地方主管部门&#xff0c;近期也纷纷针对无人驾驶出租车、无人驾驶运输…

基于术语词典干预的机器翻译挑战赛笔记Task2 #Datawhale AI 夏令营

上回&#xff1a; 基于术语词典干预的机器翻译挑战赛笔记Task1 跑通baseline Datawhale AI 夏令营-CSDN博客文章浏览阅读718次&#xff0c;点赞11次&#xff0c;收藏8次。基于术语词典干预的机器翻译挑战赛笔记Task1 跑通baselinehttps://blog.csdn.net/qq_23311271/article/d…

C++树形结构(2 树的直径)

目录 1.定义&#xff1a; 2.直径的性质&#xff1a; 3.树的直径求解方法&#xff1a; 4.直径端点求解方法&#xff1a; 朴素方法&#xff1a; 优化方法&#xff1a; 5.例题&#xff1a; 6.直径公共点&#xff1a; 7.例题&#xff1a; 8.去掉再加上&#xff1a; 9.例…

最新版kubeadm搭建k8s(已成功搭建)

kubeadm搭建k8s&#xff08;已成功搭建&#xff09; 环境配置 主节点 k8s-master&#xff1a;4核8G、40GB硬盘、CentOS7.9&#xff08;内网IP&#xff1a;10.16.64.67&#xff09; 从节点 k8s-node1&#xff1a; 4核8G、40GB硬盘、CentOS7.9&#xff08;内网IP&#xff1a;10…

【极客日常】Golang一个的slice数据替换的bug排查

上周某天下班前&#xff0c;接到同事转来一个bug要排查&#xff0c;症状是代码重构之后某些业务效果不符合预期&#xff0c;由于代码重构人是笔者&#xff0c;于是blame到笔者这边。经过10min左右的排查和尝试后&#xff0c;解决了这个问题&#xff1a;既往逻辑没有改动&#x…

框架使用及下载

Bootstrap5 安装使用 | 菜鸟教程 (runoob.com) https://github.com/twbs/bootstrap/releases/download/v5.1.3/bootstrap-5.1.3-dist.zip&#xff08;下载链接&#xff09; Staticfile CDN&#xff08;html的所有框架合集&#xff09; 直接在w3cschool里面看参考文件进行搜索自…

时间序列问题解题(基于深度学习)(Datawhale AI 夏令营)

一&#xff0c;解题步骤 时间序列问题是指基于时间顺序的数据进行分析和预测的问题。在深度学习的背景下&#xff0c;常用的模型包括循环神经网络&#xff08;RNN&#xff09;&#xff0c;长短期记忆网络&#xff08;LSTM&#xff09;和门控循环单元&#xff08;GRU&#xff0…

RHCSA —— 第八节 (编辑器、编辑命令等)

Vi/vim编辑器 vim 编辑器 就是相当于在windows中创建一个记事本&#xff0c;一个word文档里面进行编辑所需要的内容。在linux中编辑文本文件&#xff0c;包括但不限于编辑源代码、配置文件、日志文件等文件内容。 三种模式 这是在编辑器中存在三种模式&#xff1a;命令模式、…

vue中的some方法使用@1@

1.Vue中的some方法是一个数组方法&#xff0c;用于检测数组中是否至少有一个元素满足指定条件。它的用法和作用类似于JavaScript中的Array.prototype.some()方法。 2.在Vue中&#xff0c;使用some方法可以对数组进行条件判断&#xff0c;以确定数组中是否存在满足条件的元素。…

[经验] 驰这个汉字的拼音是什么 #学习方法#其他#媒体

驰这个汉字的拼音是什么 驰&#xff0c;是一个常见的汉字&#xff0c;其拼音为“ch”&#xff0c;音调为第四声。它既可以表示动词&#xff0c;也可以表示形容词或副词&#xff0c;意义广泛&#xff0c;经常出现在生活和工作中。下面就让我们一起来了解一下“驰”的含义和用法。…

Huawei、Cisco 路由中 RIP 协议 summary 的用法

华为路由中 RIP summary summary用来使能 RIP 有类聚合&#xff0c;聚合后的路由以使用自然掩码的路由形式发布。undo summary用来取消有类聚合以便在子网之间进行路由&#xff0c;此时&#xff0c;子网的路由信息就会被发布出去。路由聚合降低了路由表中路由信息量。说明 有类…

Deepfake detection【Datawhale AI夏令营】数据增强方法

deepfake detection比赛链接https://www.kaggle.com/competitions/multi-ffdi 训练分类模型判别图片是否为AI生成图片&#xff0c;探究不同数据增强方法对模型表现的影响。 1、数据增强方法 图像分类任务中常见的数据增强方法&#xff1a; &#xff08;1&#xff09; 几何变换…

hadoop学习系列--环境安装

先说踩的坑&#xff1a;刚开始学习&#xff0c;使用mac本安装单机hadoop&#xff0c;遭遇mac自身安全限制&#xff0c;到时dfs启动报错&#xff0c;解决后又出现新的问题&#xff0c;部分所需端口无法申请到&#xff0c;导致hadoop启动时报。 最终决定&#xff0c;使用虚拟机&…

【BUG】已解决:xlrd.biffh.XLRDError: Excel xlsx file; not supported

已解决&#xff1a;xlrd.biffh.XLRDError: Excel xlsx file&#xff1b; not supported 目录 已解决&#xff1a;xlrd.biffh.XLRDError: Excel xlsx file&#xff1b; not supported 【常见模块错误】 错误原因 解决办法&#xff1a; 欢迎来到英杰社区https://bbs.csdn.net/…

深入解析HNSW:Faiss中的层次化可导航小世界图

层次化可导航小世界&#xff08;HNSW&#xff09;图是向量相似性搜索中表现最佳的索引之一。HNSW 技术以其超级快速的搜索速度和出色的召回率&#xff0c;在近似最近邻&#xff08;ANN&#xff09;搜索中表现卓越。尽管 HNSW 是近似最近邻搜索中强大且受欢迎的算法&#xff0c;…

SQL Server性能优化秘籍:自定义统计信息收集的艺术

SQL Server性能优化秘籍&#xff1a;自定义统计信息收集的艺术 在数据库管理中&#xff0c;统计信息是优化查询性能的关键。SQL Server通过自动收集统计信息来帮助查询优化器选择最佳的执行计划。然而&#xff0c;在某些情况下&#xff0c;自动收集可能不足以满足特定需求。本…

Python之后端Django(五)

Day/5 “session的概念”&#xff1a;它是基于cookie实现的&#xff0c;它是存储在服务器端的&#xff0c;sessionID会被存储到客户端的cookie中 “原理” 第一次请求的过程 1.用户第一次请求服务器的时候&#xff0c;服务器根据用户提交的相关信息&#xff0c;校验无误后创…

vue2获取视频时长

使用HTML5的video标签和JavaScript&#xff1a; <template><video ref"video" autoplay controls loop muted loadedmetadata"getVideoDuration"><source src"https://desktop-yikao.oss-cn-beijing.aliyuncs.com/avatar/kaissp.mp4&q…

详解SVN与Git相比存在的不足

原文全文详见个人博客&#xff1a; 详解SVN与Git相比存在的不足截至目前&#xff0c;我们已既从整理梳理的SVN和Git在设计理念上的差异&#xff0c;也重点对二者的存储原理和分支管理理念的差异进行深入分析。这些差异也直接造成了SVN和Git在分支合并、冲突解决、历史记录管理…