全局注入的函数,用于获取路由器实例,以便 操作路由 ,如 push、replace、go 等
除了使用 <router-link> 创建路由|声明式路由,还可以借助 router 相关 API 实现编程路由;类似于 <a> 和 location.href 的关系
需引入路由包 useRouter 并创建路由实例 router
可以使用普通路由 path;也可以使用命名路由 name
可以指定路由参数 params 或 query
import { useRouter } from 'vue-router'
const router = useRouter()
useRouter 常用方法
分类 |
说明 |
push |
导航时向 history 添加新记录|压入路由,并跳转到目标;单击 <router-link> 时触发;可以逐级返回 |
replace |
导航时不会向 history 添加新记录,替换|取代了当前的条目;不可返回 |
go(n) |
导航到历史记录中的特定位置;可以前进或后退;参数 n 是一个整数,相对于当前位置的偏移量 |
back() |
后退一级;相当于 go(-1) |
forward() |
前进一级;相当于 go(1) |
// 查询路由
router.push('/user?id=100')
// 查询路由,结果是 /register?plan=private
router.push({ path: '/register', query: { plan: 'private' } })
// 动态路由 - 静态和动态
router.push('/user/eduardo')
router.push({ path: '/detail/' + ind })
// 动态路由,并加上参数,让路由建立 url;只能使用命令路由name
router.push({ name: 'user', params: { username: 'eduardo' } })
//禁止返回路由
router.push({ path: '/user', query: { bread: 'user' }, replace: true })
router.replace({ path: '/user', query: { bread: 'user' } })