route是路由信息对象,每一个路由都会有一个route对象,是一个局部对象,它里面主要包含当前路由的一些基本信息,比如:name、meta、path、hash、query、params、fullPath、matched、redirectedFrom等。
import {useRoute} from "vue-router"
const route = useRoute()
示例:
- $route.path:字符串,对应当前路由的路径,总是解析为绝对路径,如"/foo/bar"。
- $route.params: key/value 对象,包含了 动态片段 和 全匹配片段,如果没有路由参数,就是一个空对象。
- r o u t e . q u e r y : k e y / v a l u e 对 象 , 表 示 U R L 查 询 参 数 。 例 如 , 对 于 路 径 / f o o ? u s e r = 1 , 则 有 route.query: key/value 对象,表示 URL 查询参数。例如,对于路径 /foo?user=1,则有 route.query:key/value对象,表示URL查询参数。例如,对于路径/foo?user=1,则有route.query.user == 1,如果没有查询参数,则是个空对象。
- $route.hash:当前路由的hash值 (不带#) ,如果没有 hash 值,则为空字符串。锚点*
- $route.fullPath: 完成解析后的 URL,包含查询参数和hash的完整路径。
- $route.matched: 数组,包含当前匹配的路径中所包含的所有片段所对应的配置参数对象。
- $route.name:当前路径名字
- $route.meta:路由元信息
router是VueRouter的实例,这个对象中是一个全局对象,他包含了所有的路由包含了许多关键的对象和属性
import {useRouter} from "vue-router"
const router = useRouter()
常用方法:
-
push:push方法的跳转会向 history 栈添加一个新的记录,当我们点击浏览器的返回按钮时可以看到之前的页面。 1.字符串:
$router.push('user')
2. 对象:$router.push({path:'user'})
3. 命名的路由:$router.push({name:'user',params:{id:1001}})
4. 带查询参数,变成/login?id=1001$router.push({path:'login',query:{id:'1001'}})
- 路由跳转方式: push方法其实和是等同的 声明式: 编程式: $router.push(‘login’)
- path:‘name’ 和 path:‘/name’ 区别:假如当前路径是home
$router.push('/name') => /home/name $router.push('name') => /name
-
go 页面路由跳转 前进或者后退,比如:
$router.go(-1)
// 后退 -
replace push方法会向 history 栈添加一个新的记录,而replace方法是替换当前的页面, 不会向 history 栈添加一个新的记录 一般使用replace来做404页面:
$router.replace('/')
配置路由时path有时候会加 ‘/’ 有时候不加,以’/'开头的会被当作根路径,就不会一直嵌套之前的路径。