Vue中路由监听无法生效

需求:

在这里插入图片描述
点击编辑按钮,跳转到编辑页面,编辑好信息后,点击保存,返回到列表页面,并且显示原来高亮的选项卡,而且列表页数据更新。

问题:

在编辑页面点击保存后,跳转到列表页时,要实现页面刷新,并且选项卡高亮应在上一次编辑对应的位置,我采用的方案是路由监听,但是当路由发生变化后,就刷新页面,也就是重新请求数据,但是我监听了路由,并没有什么卵用。

// 列表页
watch: {
	// 通过监听路由刷新页面数据
	$route (to, from) {
		if(to.path === '/目标路由' && from.path === '/来源路由'){
			this.activeName = to.query.activeName
			this.getAllTableData()
		}
	},
},

解决方案:

路由没有监听的原因是:当你点击编辑时,页面跳转了,但列表页此时已经被销毁了,所以没有办法监听到,所以我们在做路由监听时,是不能让页面销毁的,这时就需要设置缓存,如下:

  1. 使用keep-alive将列表页缓存起来:
<keep-alive include="列表页">
	<router-view></router-view>
</keep-alive>
  1. 添加事件监听:
// 列表页
watch: {
	// 通过监听路由刷新页面数据
	$route (to, from) {
		if(to.path === '/目标路由' && from.path === '/来源路由'){
			this.activeName = to.query.activeName
			this.getAllTableData()
		}
	},
},

如果对您有帮助,点个赞收藏一下呗!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值