this.$router.push

  1. 跳转到指定URL,向history栈添加一个新的纪录,点击后退会返回至上一个页面。
  2. 声明式:< router-link :to = “…” >
  3. 编程式:< router.push(…) > // 该方法的参数可以是一个字符串路径,或者一个描述地址的对象。
// 字符串
this.$router.push('/index')
// 对象
this.$router.push({path:'/index'})
// 带查询参数,变成/backend/order?selected=2/,query传参
this.$router.push({path:'/index', query:{name: '123'} })
// 命名的路由 params传参
this.$router.push({name:'index', params:{name: '123'} })

this.$router.replace

  1. 跳转到指定的URL,替换history栈中最后一个记录,点击后退会返回至上一个页面。(A----->B----->C 结果B被C替换 A----->C)
  2. 设置replace属性(默认值:false)的话,当点击时,会调用router.replace(),而不是router.push(),于是导航后不会留下history记录。即使点击返回按钮也不会回到这个页面。加上replace: true时,它不会向 history 添加新纪录,而是跟它的方法名一样——替换当前的history记录。
// 声明式
<reouter-link :to="..." replace></router-link>
// 编程式:
router.replace(...)
// push方法也可以传replace
this.$router.push({path: '/homo', replace: true})

两种传参方式

query:this.$router.push({path: '/home',query: {site: [],bu: []}})
params:this.$router.push({name: 'Home', // 路由名称params: {site: [],bu: []}})
params: /router1/:id, /router1/123, /router1/789, 这里的id 叫做 params
query: /router1?id=123, /router?id=456, 这里的id 叫做 query

两者传参参数的区别

query 传递配置的时path,而params传递配置的是name,在params中配置path无效
query在路由配置不需要设置参数,而params必须设置
query传递的参数会显示在地址栏中
params传递刷新会无效,但是query会保存传递过来的值,刷新不变;

路由的配置

query:{path: '/home',name: Home,component: Home}
params:{path: '/home/:site/:bu',name: Home,component: Home}

如果路由上面不写参数,也是可以传递过去的,但不会再URL上面显示出你的参数,并且当你跳转到别的页面或者刷新页面的时候参数会丢失,那依赖这个参数http请求或者其他操作就会失败

在接受跳转的页面获取路由参数

created(){let self = thisself.getParams()
},
watch(){'$router': 'getParams'
},
methods: {getParams(){let site = this.$route.query.sitelet bu = this.$route.query.bu// 如果是params传参,那就是this.$router.params.site}
}

**注意:获取路由上面的参数,用的是$route,后面没有 r **

  1. params是路由的一部分,必须要有。query是拼接在url后面的参数,没有也没关系。
  2. params一旦设置在路由,params就是路由的一部分,如果这个路由params传参,但是在跳转的时候没有传递这个参数,会导致跳转失败或者页面会没有内容。
  3. params、query不设置也可以传参,但是params不设置的时候,刷新页面或者返回参数会丢失,query并不会出现这种情况。

this.$router.go(n)

  1. 类似window.history.go(n),向前后向后跳转 n 个页面,n 可正(向后跳转)可负(向前跳转)
  2. this.$router.go(1) // 类似history.forward()
  3. this.$router.go(-1) // 类似history.back()

最后总结

路由传递参数和传统传递参数是一样的,命名路由类似表单提交而查询就是URL传递:

  1. 命名路由搭配params,刷新页面参数会丢失
  2. 查询参数搭配query,刷新页面数据不会丢失
  3. 接受参数使用this.$route 后面就是搭配路由的名称就能获取到参数的值

Vue中this.$router.replace和this.$router.push的区别相关推荐

  1. vue中的this.$route和this.$router

    我们在进行vue项目开发的时候,难免会用到vue-router,通过新建vue-rouer对象,能够方便我们对路由进行配置. 在使用的过程中经常需要使用this. $ router 和this.$ro ...

  2. Vue中methods、computed和watch属性联系及区别

    methods属性 当我们在Vue中想要调用函数或者方法时,可以在methods中调用方法,如下: <template><div><h1>methods属性< ...

  3. vue中的uri_浅谈vue-resource和vue-axios的区别

    可能有的人对vue-resource 和vue-axios比较陌生,也可能用到了都不知道.他其实就是我们vue请求里面的 this.$http.*** 和 this.axios.*** vue-res ...

  4. Vue中computed(计算属性)、methods、watch的区别

    初学vue,阅读api后,发现Vue提供了多种逻辑处理的方法,单纯的方法methods,computed(计算属性)以及watch等,充分理解这三者的区别,才能写出更加健壮的Vue代码. 1.meth ...

  5. vue中页面跳转传值_vue跳转方式(打开新页面)及传参操作示例

    本文实例讲述了vue跳转方式(打开新页面)及传参操作.分享给大家供大家参考,具体如下: 1. router-link跳转 // 直接写上跳转的地址 link跳转 // 添加参数 // 参数获取 id ...

  6. Vue Router:vue中实现前端路由

    Vue Router 官方文档 文章目录 一.路由简介 路由分类 路由安装 二.路由基本使用 安装路由器并设置路由规则 实现路由切换 指定组件的呈现位置 this中的 $router 和 $route ...

  7. vue中tab切换前端实现_vue实现Tab切换功能

    在项目开发中,我们经常会碰到Tab切换的功能,而在Vue中想实现这样的功能也应该有很多种,常用的三种应该是 Tab路由切换.Tab动态组件切换.通过v-show设置Tab显示隐藏.每种方法实现起来其实 ...

  8. vue中的浏览量_vue中前进刷新、后退缓存用户浏览数据和浏览位置的实践

    从列表页 ------> 详情页, 再从详情页 -----> 列表页 ,要保存上次已经加载的数据和自动还原上次的浏览位置 1. 缓存组件,vue2中提供了keep-alive.首先在我们的 ...

  9. vue2和vue3的参数接受方式以及vue中url参数解码

    记录vue2和vue3的接受参数以及vue中url参数解码 vue2 this.$router.onReady(() => {let obj = this.$route.query.obj || ...

最新文章

  1. 深度学习框架:GPU
  2. Python应用实战-在pandas中利用hdf5高效存储数据
  3. react打包后图片丢失_使用 webpack 搭建 React 项目
  4. 华南理工大学计算机科学与技术,计算机科学与技术
  5. hashmap转红黑树的阈值为8_面试必考的 HashMap,这篇总结到位了
  6. 史上最全的前端开发面试题(含详细答案)
  7. 换SSD硬盘,重装系统,一阵子忙乱
  8. Java21天打卡Day8-break
  9. Vuex的API文档
  10. k touch for android,k touch for android新十年
  11. 最小生成树MST详解
  12. python两列时间间隔计算器_计算两列之间的Pandas DataFrame时间差异(以小时和分钟为单位)...
  13. iOS开发- 实现类似于陌陌点点和探探首页切换效果类似
  14. 历年评书出版一览表(1955~1994)
  15. VS code编辑器出现open a floder or workspace... (File -> Open Folder)错误
  16. Brain Stimulation:深部脑刺激治疗难治性抑郁症的连接体分析
  17. 华为笔记本没有网线口_matebook 14有网线接口吗
  18. 2021苍穹战队视觉组寒假学习计划--环境配置
  19. 带你了解下Kafka的客户端缓冲池技术
  20. Flutter TabBar

热门文章

  1. javascript调用ActiveX接口失败的解决方案及使用心得
  2. phpstrom+xdebug调试远程服务器代码
  3. Sqlserver 以前我在学校T-sql建ATM取款机的sql语句
  4. C++ Primer 第9章 习题9.32
  5. Bailian2818 密码【密码+置换】
  6. Bailian3164 奇偶排序【排序】
  7. matlab 音频处理、Python音频处理
  8. 深度学习中的数据增强方法
  9. 【辨异】 —— 带宽与宽带
  10. 使用 matlab 数字图像处理(七)—— 频率域处理