前端vue入门(纯代码)32_编程式路由导航

news2024/11/25 12:47:25

星光不问赶路人,时光不负有心人

30.Vue Router--编程式导航

除了使用 <router-link> 创建 a 标签来定义导航链接,我们还可以借助 $router 的实例方法,通过编写代码来实现。

编程式路由导航的5种方法

我们先看一下组件实例中的this.$router都有哪些好用的api:【部分截图】

1.push【导航到不同的位置,添加一条新的历史记录】

注意:在 Vue 实例中,你可以通过 $router 访问路由实例。因此你可以调用 this.$router.push

想要导航到不同的 URL,可以使用 $router.push 方法。这个方法会向 history 栈添加一个新的记录,所以,当用户点击浏览器后退按钮时,会回到之前的 URL。

当你点击 <router-link> 时,内部会调用这个方法,所以点击 <router-link :to="..."> 相当于调用 $router.push(...)

声明式编程式
<router-link :to="...">$router.push(...)

该方法的参数可以是一个字符串路径,或者一个描述地址的对象。例如:

// 字符串路径
$router.push('/users/eduardo')

// 带有路径的对象
$router.push({ path: '/users/eduardo' })

// 命名的路由,并加上参数,让路由建立 url
$router.push({ name: 'user', params: { username: 'eduardo' } })

// 带查询参数,结果是 /register?plan=private
$router.push({ path: '/register', query: { plan: 'private' } })

// 带 hash,结果是 /about#team
$router.push({ path: '/about', hash: '#team' })

2.replace【替换当前位置】

  • replace :删掉上一条历史记录,并把本记录添加到history栈中。

它的作用类似于 $router.push,唯一不同的是,它在导航时不会向 history 添加新记录,正如它的名字所暗示的那样——它取代了当前的条目。

声明式编程式
<router-link :to="..." replace>$router.replace(...)

也可以直接在传递给 $router.pushrouteLocation 中增加一个属性 replace: true

$router.push({ path: '/about', replace: true })
// 相当于
$router.replace({ path: '/about' })
this.$router.replace({
    // name: 'xiangqing',
    path:'/home/stars/detail',
    //传参
    query: {
        title: s.title,
        works: s.works,
},
})

法一:<router-view> + 声明式:<router-link :to=" ....">

法二:<router-view> + 编程式:this.$router.xxx

3.go(n)【横跨历史】

该方法采用一个整数作为参数,表示在历史堆栈中前进或后退多少步,类似于 window.history.go(n)

例子

// 向前移动一条记录,与 $router.forward() 相同
$router.go(1)

// 返回一条记录,与 $router.back() 相同
$router.go(-1)

// 前进 3 条记录
$router.go(3)

// 如果没有那么多记录,静默失败
$router.go(-100)
$router.go(100)

4、forward【前进】

this.$router.forward() 前进,前进到下一次的历史记录(相当于浏览器的按钮)

this.$router.forward() //在组件实例中调用

5、back【后退】

this.$router.back() 后退,后退到上一次的历史记录(相当于浏览器的按钮)

this.$router.back()
  • 【注意】:在组件实例中调用以上方法,都得加上this【例如:this.$router.go(1)

我们看一下地址栏【初始:localhost:8080/#/】,页面结果展示:

  • 第1步:点击–About,localhost:8080/#/about,【默认:push】
  • 第2步:点击–Home,localhost:8080/#/home,【默认:push】
  • 第3步:点击–喜欢的三部动漫,localhost:8080/#/home/cartoon,【设置了replace:替换掉第2步】
  • 第4步:点击–喜欢的三个明星,localhost:8080/#/home/stars,【设置了replace:替换掉第3步】
  • 第5步:点击–周星驰,http://localhost:8080/#/home/stars/detail?title=周星驰&works=《功夫》,【跳转到detail,并携带参数】
  • 第6步:点击–测试push并跳转到detail,http://localhost:8080/#/home/stars/detail,【跳转到detail,但是未携带参数】
  • 第6步:点击–测试replace并跳转到About,localhost:8080/#/about,【跳转到第1步】

后续等vue2-3所有基础知识学完后,整个学习笔记的代码会上传到github

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

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

相关文章

掌握这几招,让你的CTA按钮更吸引人点击

CTA全称Call-To-Action&#xff0c;是行为召唤按钮&#xff0c;是App和网页设计中的关键元素。 在落地页设计制作中&#xff0c;CTA按钮是用户在访问页面后引导用户去点击并且跳转至下一个流程&#xff08;如购买、联系、提交等行为&#xff09;的按钮控件。其核心目标是引导用…

函数图形化显示练习(进阶)

运行代码: //函数图形化显示练习&#xff08;进阶&#xff09; #include"std_lib_facilities.h" #include"GUI/Simple_window.h" #include"GUI/GUI.h" #include"GUI/Graph.h" #include"GUI/Point.h" //定义函数 double one…

【Spring Cloud系列】Hystrix应用详解

【Spring Cloud系列】Hystrix应用详解 文章目录 【Spring Cloud系列】Hystrix应用详解一、概述二、什么是Hystix三、Hystrix作用四、Hystrix设计原则五、Hystrix实现原理5.1 隔离5.2 熔断5.3 降级服务降级主要用于什么场景呢实现服务降级需要考虑几个问题降级分类 5.4 缓存请求…

使用Hugging Face预训练Bert处理下游任务显存占用过多

在使用HuggingFace的transformer下的BertForMaskedLM进行预训练语言模型的load时&#xff0c;bert会占用很大的显存。 这里可以考虑使用TinyBERT&#xff0c;速度和显存上都能得到很大的优化。 具体的方法进入https://huggingface.co/huawei-noah/TinyBERT_General_4L_312D/tr…

day01——项目导入+环境搭建

目录 软件开发整体介绍 软件开发流程 需求分析 设计阶段 编码阶段 测试阶段 上线运维 角色分工 软件环境 苍穹外卖项目介绍 项目介绍 功能架构 产品原型 ​编辑 技术选型 开发环境搭建——前端环境搭建 开发环境搭建——后端环境搭建 熟悉项目结构 ​编辑 使…

入门开发教程之网站品质教程

目录 网站品质 教程 网站品质教程 背景 要素 可访问性 可用性 可靠性 可维护性 提升网站品质 针对性调整 优化网页速度 提供多种访问方法 结论 网站品质教程 背景 在今天这个数字化时代&#xff0c;网站已经成为了各个行业展示产品和服务的重要媒介。而网站品质是…

百分点科技苏萌受邀出席首届全国统计与数据科学联合会议

7月11-13日&#xff0c;首届全国统计与数据科学联合会议在北京举行&#xff0c;会议由中国现场统计研究会、中国数学会概率统计分 会、全国工业统计学教学研究会和中国商业统计学会联合主办&#xff0c;北京大学统计科学中心承办&#xff0c;旨在促进统计与数据科学领域发展&a…

H3C-Cloud Lab实验-IPv6实验

实验拓扑图&#xff1a; 实验需求&#xff1a; 1、在R1和PC3上开启IPv6链路本地地址自动生成&#xff0c;测试是否能够使用链路本地地址互通 2、为R1配置全球单播地址2001::1/64&#xff0c;使PC3能够自动生成与R1同一网段的IPv6地址3、测试R1和PC3是否能够使用全球单播地址互…

【UE4 塔防游戏系列】05-制作可跟踪旋转的炮塔

目录 效果 步骤 一、设置游戏观察视角 二、设置PlayerController 三、制作可跟踪旋转的炮塔 效果 步骤 一、设置游戏观察视角 在视口中调整好位置&#xff0c;能够看到敌人行走的全部路线即可。然后在此处创建CameraActor 打开关卡蓝图&#xff0c;设置使用这个相机的…

【Kaggle】初学者几个冷门的操作总结

文章目录 一、如何看当前的目录&#xff1f;二、Kaggle如何切换路径&#xff1f;三、与包安装或设置有关的错误四、如何把 Kaggle 上的 input 数据转到 output 中&#xff1f; 一、如何看当前的目录&#xff1f; 在 Linux 中&#xff0c;你可以使用 pwd 命令来查看当前所在的目…

UML与SYSML的关系

UML与SysML的联系 UML&#xff08;统一建模语言&#xff09;和SysML&#xff08;系统建模语言&#xff09;是两种与建模相关的语言&#xff0c;它们之间存在联系和区别。 SysML的图分类如下图所示。 联系 SysML是基于UML的&#xff0c;它重用了UML 2的子集&#xff0c;并提…

MySQL持久化数据——主从分离 Linux下创建2个MySQL的Docker容器 挂载方式启动 配置主从

目录 引出数据库的事务1.原子性2.一致性3.隔离性4.持久性 MySQL持久化数据0.在宿主机centos创建主的文件夹1.拷贝my.cnf配置文件2.挂载方式启动主mysql3.修改my.cnf文件的权限【bug】mysql: [ERROR] unknown variable server-id200. 3.修改主的my.cof文件4.创建主从账号slave5.…

Mysql索引实战

Mysql索引实战 一&#xff1a;概述1.1 索引如何提高查询效率&#xff1a; 二&#xff1a;结构2.1 主要索引结构2.2 详解BTree2.2.1 二叉树2.2.2 红黑树2.2.3 B-Tree2.2.4 BTree2.2.5 为什么InnoDB存储引擎选择使用Btree索引结构&#xff1f; 三&#xff1a;索引分类3.1 按照作用…

使用fast测试的错误

错误&#xff1a;Connection refused: connect 分析&解决 检查服务的端口号和fast生成请求时的端口号是否一致&#xff0c;不一致会报上面的错误 分析&#xff1a;设置服务配置的方法很多&#xff0c;可以写在配置文件里&#xff0c;也可以写在命令行里&#xff0c;当有多…

windows nodejs 版本切换

一、按健winR弹出窗口&#xff0c;键盘输入cmd,然后敲回车。然后进入命令控制行窗口&#xff0c;并输入where node查看之前本地安装的node的路径。 二、找到上面找到的路径&#xff0c;将node.exe所在的父目录里面的所有东西都删除。 三、从官网下载安装包 https://github.com/…

轻量级性能测试工具 wrk 应该如何使用?

项目设计之初或者是项目快要结束的时候&#xff0c;大佬就会问我们&#xff0c;这个服务性能测试的结果是什么&#xff0c;QPS 可以达到多少&#xff0c;RPS 又能达到多少&#xff1f;接口性能可以满足未来生产环境的实际情况吗&#xff1f;有没有自己测试过自己接口的吞吐量&a…

MongoDB安装配置教程(详细版)

前言&#xff1a;MongoDB是前端开发人员普遍使用的数据库&#xff0c;因为MongoDB不需要图形界面&#xff0c;是一个基于分布式文件存储的开源数据库系统。MongoDB 将数据存储为一个文档&#xff0c;数据结构由键值对(key>value)组成&#xff1b;MongoDB 文档类似于 JSON 对…

Flutter:自定义错误显示

为什么要自定义错误处理 以下面数组越界的错误为例&#xff1a; class _YcHomeBodyState extends State<YcHomeBody> {List<String> list [苹果, 香蕉];overrideWidget build(BuildContext context) {return Center(child: Column(children: [Text(list[0]),Tex…

小区物业管理信息系统设计与实现(论文+源码)

小区物业管理信息系统设计与实现(论文源码) 本篇 论文源码私我 以上内容只是精简版 还有很多原创类型论文 摘 要 随着互联网的发展&#xff0c;网络技术的发展变得极其重要&#xff0c;所以依靠计算机处理业务成为了一种社会普遍的现状。管理方式也自然而然的向着现代化技术方…

python_day8_timeline

带时间线的柱状图 导包 from pyecharts.charts import Bar, Timeline from pyecharts.options import * from pyecharts.globals import *创建柱状图1 bar1 Bar() bar1.add_xaxis([中国, USA, 不列颠]) bar1.add_yaxis(GDP, [30, 20, 10],label_optsLabelOpts(position&quo…