Vue Router 中的路由跳转方式大体上可以分为两类:
- 组件标签跳转
- API 方法跳转
一、基本用法
1、组件标签跳转
Vue Router 中的组件标签跳转,就类似 HTML 中的<a>标签跳转。
Vue Router 中提供了一个<router-link>组件,搭配to属性来实现路由的跳转:
注意:值为对象时,<router-link to="/register">没有账号?去注册</router-link><router-link :to="{ path: '/register' }">没有账号?去注册</router-link><router-link :to="{ name: 'Register' }">没有账号?去注册</router-link>
to属性需要通过v-bind动态绑定。2、API 方法跳转
当我们在跳转前还需要做一些额外的处理时,直接用<router-link>组件跳转就不适用了。
因此 Vue Router 中还提供了 API 方法跳转的方式:export default {methods: {register() {alert('恭喜你,注册成功。');// 方式一:this.$router.push('/login');// 方式二:this.$router.push({path: '/login'})// 方式三:this.$router.push({name: 'Login'})}}}
二、不保留历史记录
如果使用路由的基本跳转方式来进行跳转,跳转后浏览器中会保留每一个页面的访问记录,用户通过浏览器的“前进”、“后退”按钮可以返回到上一个页面和前进到下一个页面。
但是,在某些特殊页面中,我们是希望用户跳转离开后,不能再回退回来。
例如:用户登录成功后,跳转到首页,我们就希望用户不能再通过“回退”按钮回到登录页。
所以,我们需要在跳转后不保留当前页面的访问记录。
Vue Router 中提供了如下方式,来实现跳转后不保留当前页面的记录:<router-link to="/login" replace>登录</router-link>
export default {methods: {login() {alert("登录成功。");this.$router.replace('/login');}}}
