Vue获取(返回)上一个路由

博客介绍了Vue获取上一个路由或返回上一个路由的三种实现方法,一是使用钩子函数beforeRouteEnter,还可查看相关链接了解其他钩子函数和路由守卫;二是使用路由自带的go方法,参数为 -1 时相当于 history.back();三是直接使用 history.back() 方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Vue获取上一个路由或者说返回到上一个路由可以用三种方法实现

1.使用钩子函数beforeRouteEnter

beforeRouteEnter(to, from, next) {}

以及其他两个钩子函数请看:https://www.cnblogs.com/lhl66/p/9195901.html

关于路由守卫,每个路由是又独立守卫的:https://www.jianshu.com/p/3e13d50b7f2f

2.使用路由自带的go方法

this.$router.go(-1)

go方法只接受数值参数,当为-1时相当于history.back(),具体可查看https://www.cnblogs.com/lwwen/p/7245083.html

3.这个就是上诉说到的history.back()方法了

window.history.back()

 

Vue.js中,如果你想要在路由返回上一页的同时传递参数,可以结合Vuex(状态管理库)或者URL查询参数、路径动态参数来实现。这里提供一种常见的做法: 1. **通过Vuex**: - 在路由守卫`beforeEach`或`beforeRouterUpdate`中,检查当前要进入的页面是否需要携带某些数据。如果有,更新Vue的store状态。 - 当用户点击返回按钮时,从组件或者路由守卫中读取store的数据,并将其作为参数传回上一页。 ```javascript // 在store中设置数据 actions: { setBackData({ commit }, data) { commit('SET_BACK_DATA', data); } }, mutations: { SET_BACK_DATA(state, data) { state.backData = data; } } // 路由守卫 router.beforeEach((to, from, next) => { // 如果需要带数据,保存并继续导航 if (/* 判断条件 */) { this.$store.dispatch('setBackData', { paramKey: 'paramValue' }); } else { next(); } }) // 返回上一页时获取并传递参数 onBeforeRouteLeave(to, from, next) { const backData = this.$store.state.backData; // 如果存在则携带 next(false, { params: { ...backData } }); // false表示不跳转,直接离开 } ``` 2. **通过URL参数**: - 可以在离开当前页面时,将参数添加到URL查询字符串中,然后在返回时读取这些参数。 ```javascript this.$router.push({ query: { returnParam: 'yourValue' } }); // 返回时 const returnParam = this.$route.query.returnParam; ``` 3. **通过动态路由参数**: - 如果返回的是某个特定路由的详情页,你可以存储参数在组件实例或者vuex中,然后在离开该路由时带上。 ```javascript <template> <button @click="goBack">返回</button> </template> <script> export default { methods: { goBack() { const param = /* 获取参数 */; this.$router.go(-1, { params: { yourParam: param } }); }, }, }; </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值