# vue2对应版本
npm i vue-router@3
# vue3对应版本
npm i vue-router@4
import VueRouter from 'vue-router'
import LoginPage from '../views/LoginPage'
import ForgetPassword from '../views/ForgetPassword'
import SetNewPassword from '../views/SetNewPassword'
import ResetSuccess from '../views/ResetSuccess'
import HomePage from '../views/HomePage'
export default new VueRouter({
mode: 'history',
routes: [{
path: '/login',
component: LoginPage,
// children: [{
// path: 'forget',
// component: ForgetPassword,
// }]
},
{
path: '/forget',
component: ForgetPassword
},
{
path: '/reset',
component: SetNewPassword
},
{
path: '/success',
component: ResetSuccess
},
{
path: '/home',
component: HomePage
}
]
})
<template>
<div id="app">
<div>
<router-link to="/login">router-link>
<router-link to="/reset">reset passwordrouter-link>
<router-link to="/home">Homerouter-link>
div>
<div>
<router-view>router-view>
div>
div>
template>
<router-link :to="{path:'/login', query:{id:1,name:'vue'}}">
router-link>
id = this.$route.query.id
<router-link :to="{path:'/login', query:{id:1,name:'vue'}}" target="_blank">
router-link>
<template>
<button
@click="toLogin"
>Login
button>
template>
methods:{
// 通过这种方式
toLogin () {
this.$router.push({path: "/login", query: {id: 'abc'}})
}
}
// 参数获取
id = this.$route.query.id
<template>
<button
@click="toLogin"
>Login
button>
template>
methods:{
// 通过这种方式
toLogin () {
this.$router.replace({path: "/login", query: {id: 'abc'}})
}
}
// 参数获取
id = this.$route.query.id
https://www.cnblogs.com/fps2tao/p/12049526.html
next()
不要忘记写,否则无法进行跳转,会阻塞住通过在路由的文件中使用 beforeEach() 来设置 全局前置路由守卫 即对路由文件下所有的路由都有限制作用
另外一种方式是,在每个路由配置项中的 meta 字段 中配置路由想要守卫的内容:
比如上面的两个路由配置中 meta 中都创建了 isAuth 字段,并设置了 true;因此我们可以在全局路由的前置守卫这里把 isAuth 当做守卫条件。如果满足这个条件则可以实现跳转。