vue路由跳转的方法是什么 vue路由跳转


vue路由跳转的方法是什么?不知小伙伴们来看看小编今天的分享吧!
方法一:router-link (声明路由)
1、 不带参数
<router-link :to="{name:'home'}">
<router-link :to="{path:'/home'}"> //name,path可以 , 建议使用name
//注意:router-link如果是中链接'/'从根路由开始 , 如果开始不带'/' , 从当前路由开始 。
2、带参数
<router-link :to="{name:'home',params: {id:1}}">
// params传参数 (类似post)
// 路由配置 path: "/home/:id" 或者 path: "/home:id"
// 不配置path  , 第一次请求刷新页面id会消失
// 配置path,刷新页面id会保留
// html 取参 $route.params.id
// scRIPt 取参 this.$route.params.id
<router-link :to="{name:'home',query: {id:1}}">
方法二:router.push(编程路由)
// 字符串
router.push('home')
// 对象
router.push({ path: 'home' })
// 命名路由
router.push({ name: 'user',params: { userId: '123' }})
// 带查询参数 , 变成 //register?plan=private
router.push({ path: 'register',query: { plan: 'private' }})
注:如果提供 path , params 在上述例子中会被忽略 query 不属于这种情况 。相反 , 你需要提供路由 name 或手写带参数的 path:
const userId = '123'
router.push({ name: 'user',params: { userId }) // -> /user/123
router.push({ path: `/user/${userId}` ) // -> /user/123
这里的 params 不生效
router.push({ path: '/user',params: { userId }) // -> /user
方法三:this.$router.push() (函数调用)
1、不带参数
this.$router.push('/home')
this.$router.push({name:'home'})
this.$router.push({path:'/home'})
2、 query传参
this.$router.push({name:'home',query: {id:'1'}})
this.$router.push({path:'/home',query: {id:'1'}})
// html 取参 $route.query.id
// script 取参 this.$route.query.id
3、params传参
this.$router.push({name:'home',params: {id:'1'}}) // 只能用 name
// 路由配置 path: "/home/:id" 或者 path: "/home:id" ,
// 不配置path  , 第一次请求刷新页面id会消失
// 配置path,刷新页面id会保留
// html 取参 $route.params.id
// script 取参 this.$route.params.id
4、query和params区别
query类似 get,页面 跳转后url后面会拼接参数 , 类似?id=1,非重要性可以这样传输 , 密码等 。params刷新页面id还在
params类似 post,页面 跳转后url后面不会拼接参数  , 但是刷新页面id会消失
方法四:this.$router.replace() (用法相同 , push)
方法五:this.$router.go(n) ()
this.$router.go(n)
向前或向后跳n个页面 , n可为正整数或负整数
ps : 区别
this.$router.push
跳转到指定url路径 , 并想history在栈中添加记录 , 点击后退将返回到上一页
this.$router.replace
跳转到指定url路径 , 但是history栈中没有记录 , 点击返回跳转到上页 (即直接替换当前页面)
this.$router.go(n)
向前或向后跳n个页面 , n可为正整数或负整数
注意:
获取路由上方的参数使用$route , 后面没有r
params必须有路由的一部分 。query是拼接在url没有也没关系 。
params路由一旦设置 , params这是路由的一部分 , 如果有这条路由params但是跳转时没有传输此参数 , 会导致跳转失败或页面没有内容 。
params、query不设置也可以传参 , 但是params不设置时 , 刷新页面或返回参数将丢失 , 
以上是小编今天的分享 。我希望它能帮助你 。
【vue路由跳转的方法是什么 vue路由跳转】