项目 src/router 目录中的 index.js,是项目的路由配置文件。项目中所有页面的路由配置,都在该文件中完成。

一、配置页面路由

router/index.js 中配置首页和登录两个页面的路由:

  1. // 引入首页和登录组件
  2. import HomeView from '../views/home/HomeView.vue'
  3. import LoginView from '../views/login/LoginView.vue'
  4. // ...
  5. const routes = [
  6. // 配置首页路由
  7. {
  8. path: '/home',
  9. name: 'Home',
  10. component: HomeView
  11. },
  12. // 配置登录页路由
  13. {
  14. path: '/login',
  15. name: 'Login',
  16. component: LoginView
  17. },
  18. ]

二、路由出口

路由配置成功后,当浏览器访问对应 path 时,路由组件会加载在内存中,如果需要将组件在页面显示出来,还需要在 App.vue 中设置首页和登录页组件的渲染位置:

  1. <template>
  2. <router-view></router-view>
  3. </template>

三、路由懒加载

路由懒加载,就是路由很懒,只有当路由被访问的时候才会去加载对应的组件
示例代码如下:

  1. const RegisterView = () => import('../views/register/RegisterView.vue');
  2. const routes = [
  3. {
  4. path: '/register',
  5. name: 'Register',
  6. component: RegisterView
  7. }
  8. ]

也可以直接在 component 属性值处引入:

  1. const routes = [
  2. {
  3. path: '/register',
  4. name: 'Register',
  5. component: () => import('../views/register/RegisterView.vue')
  6. }
  7. ]

四、路由重定向

路由重定向,是指将一个路径直接跳转到另一个路径。
例如在学生管理系统中,并没有配置 / 的路由。当用户默认进来访问 / 时,就匹配不到对应的页面,因此我们希望一旦用户访问 /,就直接跳转到 /login。即“将 / 重定向到 /login
配置代码如下:

  1. const routes = [
  2. {
  3. path: '/',
  4. redirect: '/login' // 重定向
  5. },
  6. {
  7. path: '/login',
  8. name: 'Login',
  9. component: Login
  10. }
  11. ]

redirect 属性就是用来实现路由重定向的。redirect 的值,必须是一个已经配置了的路由 path,例如我们上例中已经配置了的 /login

五、404 页面路由

404 页面路由,指的就是当用户访问的路径,和所有配置的路由都匹配不上时,就判定为 404 的路由。
404 页面路由的 path 的值是一个 *。表示当浏览器的地址与路由配置中的任何一个路由都不匹配时,会自动匹配通用路由。

  1. cosnt NotFound = () => import('../views/not-found/NotFound.vue'),
  2. const routes = [
  3. {
  4. path: '*',
  5. component:
  6. }
  7. ]

通常我们会将通用路由配置到所有路由的最后,当用户访问的路径不存在时,就会匹配到通用路由,跳转到错误提示页面。