路由逻辑转跳-router.push与go的用法
逻辑转跳介绍
之前的三种方式都是通过<router-link>
标签直接进行跳转,现在我们学习一种新的转跳方式:逻辑转跳
逻辑转跳的情况是什么呢?
比如我触发一个事件,然后我想进行一些额外的操作比如 '睡几秒' 或 ‘播放一个动画’ 再进行转跳。那么就要使用逻辑转跳了
思路
1 首先要有个标签绑定了这个事件
2 触发这个事件,在事件内部进行逻辑编写,以及利用this.$router.push()
进行转跳
3 push
内部的用法和之前学的路由传参的用法一致。
4 go
的用法-1
返回一页,2
前进到下两页。
代码
push用法
CourseCard.vue
<template>
...
<div class="right" @click="goto_detail">
{{ cardcon.title}}
{{ cardcon.id}}
</div>
...
</template>
<script>
export default {
name: "coure-card",
// 接收父组件传过来的数据
props:['cardcon'],
methods:{
goto_detail(){
console.log(this.cardcon.id);
// 在这里可以先写一些逻辑
// 利用this.router.push('')进行跳转,用法和router-link标签一致。
// 第一种 直接有名分组js拼接跳转
// this.$router.push(`/course/detail/${this.cardcon.id}`);
// 第二种 利用name和params进行跳转
// this.$router.push({
// 'name':'course-detail',
// params:{pk:this.cardcon.id}
// })
// 第三种 利用name 和query 进行跳转
// this.$router.push({
// 'name':'course-detail',
// query:{pk:this.cardcon.id}
// })
}
}
}
</script>
go 的用法
CourseCard.vue
<script>
export default {
name: "coure-card",
// 接收父组件传过来的数据
props:['cardcon'],
methods:{
goto_detail(){
console.log(this.cardcon.id);
// 在这里可以先写一些逻辑
// 返回上一页(最为常用)
this.$router.go(-1);
// 返回上两页
// this.$router.go(-2);
// 前进到下一页
// this.$router.go(1)
}
}
}
</script>