1. vue路由,修改某组件的路由参数,不会刷新该组件
需求:在某个组件中,内容由参数发起接口获取,且该组件由上/下翻页效果,
需要改变参数,更新内容
http://localhost:8080/#/module?type=1&id=15 //需要改变id
解决办法:
监听路由
方法一:
watch:{
// 路由发生变化页面刷新
'$route' (to, from){
this.$router.go(0);
}
}
//缺点:刷新一次页面,用户体验不好
方法二:
// 将函数在执行一次
watch: {
'$route' (to, from) {
// 在created、mounted函数执行的方法,放到该处再执行一次
fn()·······
}
},
//缺点:重复发起一次请求
如果有更好的方法,欢迎留言
删除query中的内容 delete this.$route.query.token
2. 某个页面需要token,如果token过期、没有token跳到登录页,登录成功后再返回该页面
实际需求:再A页面,点击“创建活动”功能,需要判断token;如果没有,或过期,强制跳转到登录页,然后登录了成功之后,自动跳转回A页面
//A页面
fn(){
if(token){
····
}else{
this.$router.push({
path: '/login',
query: {
redirect: this.$router.currentRoute.path, //获取当前路径
}
})
}
}
//登录页
login(){
成功...
this.$router.push({ path: this.$route.query.redirect || ' 主页 ' })
}
如果A页面还需要某些参数,那么参数也放在query中