vue-router
RouterLink 组件代替 a 标签.
RouterView 在哪里渲染当前 url 路径对应的路由组件.
$route 变量.
细节
路由命名的一些问题
{
path: "/user/:id",
name: "user",
component: UserPage,
children: [
{
path: "profile",
name: "profile",
component: UserProfile
},
{
path: "posts",
name: "posts",
component: UserPosts
},
{
path: "",
name: "root",
component: UserRoot
}
]
}
router.push('/user/123')会渲染UserRoot组件.router.push({ name: 'user', params: { id: '123' } })不会渲染UserRoot组件.
vue-router 是基于组件的复用, 因此在 router-link 切换时,并不会触发组件的生命周期函数
命名路由的优点
命名必须唯一
- 没有硬编码
- params 自动编解码
- 避免 typo
- 绕过路径排序, 例如展示一个匹配路径相同但排序较低的路由.
编程式导航
router.push() 时, 如果传了 path, 那么 params 会被忽略, ts 环境下, 编译器会进行提示.
params 会自动将非 string, number 参数转成 string 类型.
router.push 会返回一个 Promise 对象
匹配当前路由的链接
router-link-active, router-link-exact-active
- 与当前路径匹配相同的路由记录
- params 与 当前路径的 params 相同