VueRouter 是 Vue.js 的官方路由管理器,用于构建单页面应用(SPA)。在使用 VueRouter 时,开发者可以定义路由映射规则,并在 Vue 组件中通过编程式导航或声明式导航的方式控制页面的跳转和展示。以下是 VueRouter 使用的一些总结和要点:
1. 安装和引入
- 通过 npm 或 yarn 安装 VueRouter。
- 在项目中引入 VueRouter 并将其添加到 Vue 实例中。
2. 定义路由
- 使用
routes
数组定义路由规则,每个路由对象包括path
(路径)、component
(组件)和可选的name
(名称)、props
(传递给组件的属性)、meta
(元信息)等属性。
3. 创建路由实例
- 使用
VueRouter
构造函数创建路由实例,并将定义的路由规则作为参数传入。 - 将路由实例添加到 Vue 实例中,以便在组件中使用。
4. 声明式导航
- 在模板中使用
<router-link>
组件实现声明式导航。<router-link>
组件会渲染成一个<a>
标签,并自动添加点击事件处理函数,以实现页面跳转。 - 可以通过
to
属性指定目标路由的路径或名称。
5. 编程式导航
- 在 JavaScript 代码中使用
this.$router.push()
或this.$router.replace()
方法实现编程式导航。 push()
方法会向历史记录添加一个新的记录,用户可以点击浏览器的后退按钮返回前一个页面。replace()
方法则不会向历史记录添加新的记录,而是替换当前记录。
6. 动态路由匹配
- 使用通配符
:param
实现动态路由匹配。在路由规则中定义参数,并在组件中通过$route.params
访问这些参数。
7. 嵌套路由
- 在路由规则中使用
children
属性定义嵌套路由。嵌套路由的组件将渲染到父路由组件的<router-view>
中。
8. 路由守卫
- VueRouter 提供了全局守卫、路由独享的守卫和组件内的守卫三种方式来实现路由跳转前后的钩子函数。
- 可以使用这些守卫来检查用户是否登录、是否拥有访问权限等,以控制页面的访问和跳转。
9. 路由元信息
- 在路由规则中定义
meta
字段来添加路由元信息。这些信息可以在组件内通过$route.meta
访问。 - 可以使用元信息来实现页面标题的动态设置、权限控制等功能。
10. 滚动行为
- VueRouter 允许你自定义路由切换时页面滚动的行为。通过全局配置
scrollBehavior
函数来实现。
11. 路由懒加载
- 为了提高应用性能,可以使用 Vue 的异步组件和 Webpack 的代码分割功能实现路由懒加载。这样可以在需要时才加载相应的路由组件代码。
12. 导航守卫和全局前置守卫
- 导航守卫(Navigation Guards)允许你在路由变化的过程中进行一些操作,如检查登录状态、权限验证等。
- 全局前置守卫(Global Before Guards)是最常用的守卫之一,它在路由变化之前触发,可以阻止路由跳转或重定向到其他路由。
13. 路由视图和命名视图
<router-view>
组件用于渲染当前路由对应的组件。默认情况下,它只渲染一个组件。但你也可以使用命名视图(Named Views)来同时渲染多个组件。
14. 路由重定向和别名
- 可以使用
redirect
属性实现路由重定向,将某个路径的访问重定向到其他路径。 - 也可以使用
alias
属性为路由设置别名,使多个路径都能访问到同一个路由组件。
15. 路由参数传递
- 可以通过路由参数(如 query 和 params)在路由之间传递数据。在目标组件中可以通过
$route
对象访问这些参数。