利用vue-router跳转的几种方式

这篇具有很好参考价值的文章主要介绍了利用vue-router跳转的几种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

​1 <router-link>
2 this.$router.push

   跳转到指定路径,并将跳转页面压入history栈中,也就是添加了一个页面记录。
3 this.$router.replace

   跳转到指定路径,将history栈中的当前页面替换为跳转到的页面。
4 this.$router.go(n)

   在histroy栈中向前或者向后跳转n个页面,n可为正整数或负整数。


<router-link to>

1.不带参数

<router-link :to="/home"></router-link>

<router-link :to="{name:'home'}"></router-link>

<router-link :to="{path:'/home'}"></router-link>

直接写路径或者根据vue-router的配置文件(index.js),构建一个对象使用name属性或者path属性都行, 建议用name。

2.路径参数(pathvariable)

<router-link to = "/跳转路径/传入的参数"></router-link>

例如:

<router-link :to="`/adddoc/${record.id}`">

to的属性值是`/adddoc/${record.id}`表达式的计算结果

  • 路径样式                         /跳转路径/传入的参数  /ebook/1
  • 路由index.js配置path     {path:/ebook/:id,name:ebook,component:Ebook}
  • 取参数                            HTML: $route.params.id (用取值表达式写在templat中)       
                                           Script: this.$route.params.id (写在JS代码中)

3.params传递参数(url后面会显示/value,路径传参的另一种写法)
如果说路径传参是纯手写,那么params传参就是由vue-router帮助构建的路径传参

<router-link :to="{name:'home', params: {id:10001}}"></router-link>
<router-link :to="{name:'adddoc', params: {eid:`${record.id}`}}"></router-link>
  • 路径样式         /home/10001  ,/adddoc/1
  • 路由index.js配置path    path:"/home/:id" 或者 path: "/adddoc:eid"  (省略了name和component)路由index.js如果不配置path ,第一次可请求,刷新页面id会消失;配置path,刷新页面id会保留。使用params必须要注意的是,params属性中,传递参数使用的参数名称必须与index.js中path配置的名称对应上path配置时使用:id,传递参数时就要用params:{id:xxx},配置时使用:eid,传递参数时就要用params:{eid:xxx}
  • 取参              HTML: $route.params.id      
                         Script:  this.$route.params.id

4.query传递参数(类似get,url后面会显示 ?name=value)

 <router-link :to="{name:'home', query: {id:10001}}"></router-link>
 <router-link :to="{name:'adddoc', query: {eid:`${record.id}`}}"></router-link>
  •  路径样式         /home?=10001  ,/adddoc?eid=1
  •  路由index.js不用做path的额外配置(因为query参数根本就不是路径的一部分)
  •  取参               HTML取出 $route.query.id  ,  $route.query.eid
                           Script取出  this.$route.query.id  ,this.$route.query.eid

push跳转

整体思路与<router-link to>是一样的

1. 不传参

 this.$router.push('/adddoc');

 this.$router.push({name:'adddoc'});

 this.$router.push({path:'/adddoc'});

2. 路径传参

 this.$router.push('/adddoc/21');
  •  需要在router index.js中进行路径配置,配置方式与<router-link to>的路径传参方式一样   path:/adddoc:eid (省略了name和component)
  •  取参的方式与<router-link to>的路径传参方式一样
     HTML: $route.params.eid
     Script: this.$route.params.eid

3. params传参(路径传参的另一种写法)

 this.$router.push({name:'adddoc',params: {eid:'24'}})

push函数中,params只能与name配合使用。使用path会导致白屏(但是没有异常)

  •  需要在router index.js中进行路径配置,配置方式与<router-link to>的路径传参方式一样
     path:/adddoc:eid name:adddoc component AddDoc
  •  取参的方式与<router-link to>的params取参方式一样
     HTML: $route.params.eid
     Script: this.$route.params.eid

4. query传参

this.$router.push({name:'adddoc',query: {eid:'24'}})
this.$router.push({path:'/adddoc',query: {eid:'24'}})

与<router-link to>的query传参方式一样不需要path配置
取参的方式与<router-link to>的params取参方式一样
HTML: $route.query.eid
script: this.$route.query.eid


replace跳转

replace跳转的写法和含义与push一模一样(不再赘述)
replace与push的区别在于对histroy栈的操作不一样,push是压入栈新的页面,replace则是用新页面替代栈中当前的页面。文章来源地址https://www.toymoban.com/news/detail-663794.html


go跳转


this.$router.go(-1);  // 在浏览器记录中后退一步记录,等同于 history.back()
this.$router.go(1);   // 在浏览器记录中前进一步,等同于 history.forward()

到了这里,关于利用vue-router跳转的几种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp页面跳转的几种方式 以及举例(2)

    又来混时长 嫖流量卷了 保留当前页面,跳转到应用内的某个页面,使用 uni.navigateBack 可以返回到原页面。   关闭当前页面,跳转到应用内的某个页面。   关闭所有页面,打开到应用内的某个页面。 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。 关闭当前页面,返回上一

    2024年01月19日
    浏览(36)
  • JS 实现页面跳转的几种方法

    我总结了这五种方法: 第一种:使用JS跳转页面 (1)跳转带参 (2)跳转无参 第二种:返回上一次预览界面 HTML页面嵌套 第三种:button按钮添加事件跳转   第四种:在新窗口打开 第五种:通过meta设置跳转页面 这里还有一个页面传值 第一个页面 第二个页面

    2024年02月01日
    浏览(34)
  • 微信小程序和H5之间相互跳转的几种情况

    直接通过web-view内嵌的方式,有且只有这一种方式。 H5内嵌在小程序的web-view中,想要打开小程序自身的页面,可通过 wx.miniProgram.navigateTo 方法,参考链接:web-view | 微信开放文档 (qq.com) H5在非小程序环境中,微信浏览器或者手机自带浏览器打开时,想要跳转到小程序,可通过

    2024年02月11日
    浏览(38)
  • 登录页面的实现及跳转(vue-router)

    路由的核心:改变URL,页面不会整体刷新 一、创建项目 1、使用vite创建项目 注意:根据需求,选择‘可选功能’完成安装(具体安装步骤vue.md) 2、项目结构 3、创建登录项目 1创建一个组件(登录页面),我们把这个组件称为单文件组件 位置:(规范情况下,将组件写到

    2023年04月22日
    浏览(31)
  • Vue路由跳转的五种方式

    路由跳转有两种形式:声明式导航、编程式导航 1. router-link 声明式 prop= :to=“…” 相当与 router.push(…) router-link中链接如果是’ / \\\'开始,就是从根路由开始 如果开始不带 ’ / \\\',则是从当前路由开始 例子 2. this.$router.push() 可追溯 编程式 router.push(…)//该方法的参数可以是一个

    2024年02月05日
    浏览(27)
  • 【vue3】vue3路由跳转的方式

    如 : 有无this都行 $router.push(\\\'/plantduce\\\') this.$router.push(\\\'/plantduce\\\') vue3 || vue2 路由参考 useRouter 与 useRoute 都可以。

    2024年02月06日
    浏览(31)
  • Vue实现免密登录跳转的方式

    需求背景: 最近接到这样一个需求,点击某个url要跳转到某个系统的首页。 实现思路: 首先,我们要明确一个点,系统中所有的操作都要携带Token去发送请求,而登录一般是获取Token的来源,点击url实现跳转,并不意味着,不需要登录,只是我们在点击url的过程中,去帮助用

    2024年02月15日
    浏览(41)
  • Vue入门六(前端路由的概念与原理|Vue-router简单使用|登录跳转案例|scoped样式|混入(mixin)|插件)

    路由(英文:router)就是对应关系 SPA指的是一个web网站只有一个唯一的一个HTML页面, 所有组件的展示与切换 都在唯一的一个页面内完成。 此时, 不同组件之间的切换 需要通过 前端路由 来实现 总结:在SPA项目中, 不同功能之间的切换 ,要 依赖于前端路由 来完成 通俗移动

    2024年01月22日
    浏览(38)
  • vue3 route跳转的new tab两种方式

    Vue有两种类型的应用SPA和MAP,本文主要介绍的是SPA类型下面的使用方法 单页面应用,即一个web项目就只有一个页面(即一个HTML文件) 这种类型通常都需要router来进行页面跳转. 一开始只需要加载一次js、css的相关资源。所有内容都包含在主页面,对每一个功能模块组件化。单

    2024年02月09日
    浏览(33)
  • taro跳转页面传参的几种方式

    我之前在网上也搜了挺多taro传参的方式,这里我总结一下 路由跳转分Taro.navigateTo与Taro.redirectTo, 但是这两种方法只适用于传递少量参数 Taro.navigateTo跳转时是将新的页面加载过来,最多加载到10层,返回时去的是上一页; Taro.redirectTo跳转的同时将当前页面销毁,返回时去的是

    2024年02月07日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包