Vue路由导航(replace、push、forward、back、go)

Vue路由导航(replace、push、forward、back、go)

先了解栈结构,再学习以下内容

在这里插入图片描述

  • 栈的数据结构:先进后出,后进先出。
  • 原理:push将元素压入栈内,pop将元素弹出,栈有分别有栈底指针和栈顶指针,指向栈内最低和最高的元素。

replace和push属性的原理

在这里插入图片描述

在这里插入图片描述

  • 浏览器中的前进和后退的按钮也是使用了栈的数据结构实现,但也有不同。对于浏览器而言,分别有两种属性:
    • push属性(推进):以叠加的方式进行入栈操作。
    • replace属性(替换):以替换栈顶元素的方式进行入栈操作。
    • 注意1:不管有没有使用其他属性的,浏览器默认添加push属性。(仅在声明式中使用,以下会讲。)
    • 注意2:不管使用哪种属性进行操作,浏览器都不会删除原有的浏览记录,只会更改指针的指向。

replace和push属性的’声明式’路由导航和’编程式’路由导航

replace和push属性的’声明式’路由导航

  • 注意事项:
    • 不管有没有使用其他属性的,浏览器默认添加push属性,所以写不写push属性都会使用。(以下是replace属性)
    • 声明式适合用于点击超链接转换路由的方式
    • query和params都可以使用
  • replace属性两种格式:<router-link :replace="true"><router-link replace>(简写)
<template><div><h2>A</h2><div><ul><li><!-- 声明式路由导航 --><router-link :replace="true" :to="{name : 'ac',params : {a1 : a[0],a2 : a[1],a3 : a[2]}}" >A1 Router-Link</router-link></li><li><router-link replace :to="{name : 'ad',params : {a1 : b[0],a2 : b[1],a3 : b[2]}}" >A2 Router-Link</router-link></li></ul></div><router-view></router-view></div>
</template><script>export default {name : 'A',data(){return{a : ['111', '222', '333'],b : ['444', '555', '666']}}}
</script>

replace和push属性的’编程式’路由导航

  • 注意事项:
    • 编程式适合用于点击按钮转换路由的方式
    • 编程式跟声明式不同,编程式可以使用相关的API来完成
    • query和params都可以使用
// push属性的格式
// $router:多组件共享的路由器对象。
this.$router.push({name : '',query or params : {}
}, ()=>{}, ()=>{})
// replace属性的格式
// $router:多组件共享的路由器对象。
this.$router.replace({name : '',query or params : {}
},  ()=>{}, ()=>{})
  • 解释()=>{}, ()=>{}
    • 不使用()=>{}, ()=>{}的情况:在编程式反复执行push和replace属性浏览器控制台会出现以下图片情况

    • 在这里插入图片描述

    • 原因:在使用push和replace属性时,会传递两个回调函数,一个是成功回调,一个是失败回调。如果没有传递回调函数,则就会出现报错的情况,在后面加上()=>{}, ()=>{}就好了。

<template><div><h2>A</h2><div><ul><li><button @click="goA1">A1 Button</button></li><li><button @click="goA2">A2 Button</button></li></ul></div><router-view></router-view></div>
</template><script>export default {name : 'A',data(){return{a : ['111', '222', '333'],b : ['444', '555', '666']}},methods : {goA1(){// 编程式路由导航// $router:多组件共享的路由器对象。this.$router.push({name : 'ac',params : {a1 : this.a[0],a2 : this.a[1],a3 : this.a[2]}}, ()=>{}, ()=>{})},goA2(){this.$router.replace({name : 'ad',params : {a1 : this.b[0],a2 : this.b[1],a3 : this.b[2]}},  ()=>{}, ()=>{})}}}
</script>

forward、back和go的’编程式’路由导航

  • forward:前进,this.$router.forward()
  • back:后退,this.$router.back()
  • go:前进几步、后退几步,this.$router.go()
    • 括号内为正数表示前进,负数表示后退,数字表示几步
// App.vue
<template><div><button @click="forward">前进</button><button @click="back">后退</button><button @click="forwardFive">前进5</button><button @click="backFive">后退5</button></div>
</template><script>export default {name : 'App',methods : {forward(){this.$router.forward()},back(){this.$router.back()},forwardTwo(){this.$router.go(5)},backTwo(){this.$router.go(-5)}}}
</script>
k()},forwardTwo(){this.$router.go(5)},backTwo(){this.$router.go(-5)}}}
</script>

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

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

相关文章

Oracle 19c 可插拔数据库PDB的创建方式

多租户容器数据库架构图总览 多租户容器数据库组成部分&#xff1a; 1.有且仅有一个CDB Root(CDB$ROOT)&#xff0c;它包含了Root和所有PDB数据库的元数据和数据字典信息。 2.有且仅有一个Seed PDB(PDB$SEED),它的作用是创建其他PDB的模板&#xff0c;它是只读库&#xff0c;…

饥荒联机版 Don‘t Starve Together(WinMac)最新中文学习版

《饥荒联机版》是由Klei自主开发的开放世界冒险游戏。在这个游戏中&#xff0c;玩家将扮演各种各样的人物&#xff0c;这些人物不幸来到了一个神秘的异世界。在旅行中&#xff0c;玩家会邂逅性格各异、能力独特的同伴们&#xff0c;并和他们一起生存下去并征服异世界。游戏中的…

从零开始的目标检测和关键点检测(一):用labelme标注数据集

从零开始的目标检测和关键点检测&#xff08;一&#xff09;&#xff1a;用labelme标注数据集 1、可视化标注结果2、划分数据集3、Lableme2COCO&#xff0c;将json文件转换为MS COCO格式 前言&#xff1a;前段时间用到了mmlab的mmdetction和mmpose&#xff0c;因此以一个小的数…

ruoyi系统改造

前端启动报错&#xff1a;Error: error:0308010C:digital envelope routines::unsupported 修改ruoyi-ui/package.json&#xff0c;添加export NODE_OPTIONS–openssl-legacy-provider && "scripts": {"dev": "export NODE_OPTIONS--openssl…

【Python_GraphicsView 学习笔记(一)】Graphics View框架的基本介绍

【Python_GraphicsView 学习笔记&#xff08;一&#xff09;】Graphics View框架的基本介绍 前言正文1、Graphics View框架简介2、Graphics View框架与QPainter类的区别3、Graphics View框架的三个组成部分4、场景QGraphicsScene类5、视图QGraphicsView类6、图形项QGraphicsIte…

利用GEE对季节性地物进行分类的代码实现

采样点的选取 如果你采用监督学习的话&#xff0c;那就手动打标签 或者可以了解一下非监督学习 合成多季节多波段影像 首先&#xff0c;制作一个包含多波段的影像&#xff0c;每个波段作为随机森林分类器的一个feature输入&#xff0c;提升feature的丰富度以保证分类精度。…

MySQL用户管理和授权

目录 一.用户管理 1.1.新建用户 1.2.查看用户 1.3.重命名用户rename 1.4.删除用户 1.5.修改当前登录用户密码 1.6.修改其他用户密码 1.7.忘记root 密码并找回 二.数据库用户授权 2.1.all privilege包含的权限 2.2.授予权限 ①允许指定用户查询指定数据库表 ②允许…

FlexmonsterPivotTable-2.9.63 LICENSE

FlexmonsterPivotTable-v2.9.63用于网络报告的数据透视表组件&#xff0c;用于可视化业务数据的最强大的 JavaScript 工具 与任何技术堆栈集成 该组件可与任何技术堆栈无缝协作&#xff1a; 与Angular、React、jQuery、Vue等 完美集成 没有服务器端依赖项 只需几行代码 即可开始…

Python接口自动化测试实战,一篇足矣

接口自动化测试是指通过编写程序来模拟用户的行为&#xff0c;对接口进行自动化测试。Python是一种流行的编程语言&#xff0c;它在接口自动化测试中得到了广泛应用。下面详细介绍Python接口自动化测试实战。 1、接口自动化测试框架 在Python接口自动化测试中&#xff0c;我们…

社区论坛在线交流网站系统源码+SEO优化 带前后端完整搭建教程

大家好&#xff0c;今天罗峰来给大家分享一款社区论坛在线交流网站系统源码。社区论坛在线交流在当下时时代还是很火的。现在人们对于在线交流和互动的需求不断增加。社区论坛作为一种传统的在线交流方式&#xff0c;仍然有着广泛的市场需求和用户群体。然而&#xff0c;现有的…

MySQL - Zero date value prohibited

问题: timestamp字段报Caused by: com.mysql.cj.exceptions.DataReadException: Zero date value prohibited 原因: timestamp字段存入了0值, 超出了最小值1900-01-01 00:00:00, 转Java对象的时候报错 解决: 1.修复或删除原数据 2. mysqlurl 中添加zeroDateTimeBehaviorconve…

【Linux】 shutdown 命令使用

shutdown 命令可以用来进行关机程序&#xff0c;并且在关机以前传送讯息给所有使用者正在执行的程序&#xff0c;shutdown 也可以用来重开机。使用权限&#xff1a;系统管理者。 语法 shutdown [选项] 时间 [警告信息] 命令选项及作用 执行令 man shutdown 执行命令结果 参…

替代知网!中国科学院发布公益学术平台,可免费获取8000万篇论文专著!

可检索1.7亿篇科技文献的 公益平台来了&#xff01; 11月1日由中国科学院等单位联合建设的 PubScholar公益学术平台 正式对社会公众开放 该平台首期整合集成了 中国科学院的科技成果资源 科技出版资源和学术交流资源 内容包含期刊论文、学位论文 预发布论文、专利文献、…

时间复杂度的计算技巧-算法模型中的时间复杂度如何计算,有哪些技巧呢

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下时间复杂度的计算技巧-算法模型中的时间复杂度如何计算&#xff0c;有哪些技巧呢&#xff0c;算法的时间复杂度是评估算法性能和效率的一种方式&#xff0c;它表示算法需要执行多少次基本操作才能完成其任务&#x…

LuaHttp库写的一个简单的爬虫

LuaHttp库是一个基于Lua语言的HTTP客户端库&#xff0c;可以用于爬取网站数据。与Python的Scrapy框架类似&#xff0c;LuaHttp库也可以实现网站数据的抓取&#xff0c;并且可以将抓取到的数据保存到数据库中。不过需要注意的是&#xff0c;LuaHttp库并不像Scrapy框架那样具有完…

【C++ 系列文章 -- 程序员考试 201811 下午场 C++ 专题 】

1.1 C 题目六 阅读下列说明和C代码&#xff0c;填写程序中的空&#xff08;1&#xff09; &#xff5e;&#xff08;5&#xff09;&#xff0c;将解答写入答题纸的对应栏内。 【说明】 以下C代码实现一个简单乐器系统&#xff0c;音乐类&#xff08;Music&#xff09;可以使用…

VMware——VMware17设置WindowServer2012R2环境静态IP及关闭防火墙

目录 一、VMware17设置WindowServer2012R2环境静态IP1.1、工具栏虚拟机的设置步骤1.2、工具栏编辑的设置步骤1.3、静态IP的设置步骤 二、VMware17关闭WindowServer2012R2环境防火墙 一、VMware17设置WindowServer2012R2环境静态IP 1.1、工具栏虚拟机的设置步骤 打开VMware虚拟…

【工具】【IDE】Qt Creator社区版

Qt Creator社区版下载地址&#xff1a;https://download.qt.io/archive/qt/ 参考&#xff1a;https://cloud.tencent.com/developer/article/2084698?areaSource102001.8&traceIduMchNghqp8gWPdFHvSOGg MAC安装并配置Qt&#xff08;超级简单版&#xff09; 1.安装brew&…

el-table 列分页

<template><div><el-table:data"tableData":key"tampTime"style"width: 100%"><el-table-columnprop"name"label"姓名"width"180"></el-table-column><el-table-columnprop&quo…

上传LaTeX版本的NeurIPS文章到arXiv总是Failed的解决方案

往arXiv上传NeurIPS模版文章时&#xff0c;一直出现两处报错&#xff0c;一处是下图中的图片错误&#xff1a; 但是&#xff0c;我怀疑是不是图片并排放置的minipage不可用&#xff0c;于是改成了正常的图片形式来测试&#xff1a; 仍然是相同的错误&#xff0c;于是我又尝试去…