学习vue的路由管理,简单实现页面跳转

108 阅读2分钟

前言

面试官:你怎样实现页面跳转呢?而Vue Router 是 Vue 的官方路由管理器。它允许你在 Vue 单页面应用(SPA)中进行路由控制,即管理页面间的跳转和视图的展示。Vue Router 使用了 Vue.js 的核心特性,比如组件化和响应式数据,来实现灵活且高效的路由功能。

主要功能包括:

声明式路由配置:使用简单的配置语法来定义路由,包括路径和对应的组件。

嵌套路由:支持多层级的嵌套路由结构,可以在页面内部组织和管理视图。

路由参数:支持动态路径参数,可以在路由路径中捕获参数,从而根据不同参数显示不同内容。

编程式导航:提供了丰富的 JavaScript API,允许在组件内部或其他地方进行路由导航操作,如跳转到新路由、前进或后退历史记录等。

导航守卫:允许在路由跳转前、跳转后、路由更新等时刻执行额外的逻辑,例如权限验证、数据加载等。

命名路由:可以给路由配置命名,便于在代码中进行引用和跳转。

路由传参:支持通过路由传递参数,以及通过路由组件的 props 选项传递参数。

安装环境

在终端执行下列命令:

npm install vue-router@4

实现页面跳转

1. 声明式导航

使用 <router-link> 组件可以在模板中声明式地导航到目标路由,它会渲染成一个 <a> 标签,点击后会触发路由跳转。

<template>
  <div>
    <router-link to="/home">Home</router-link>
    <router-link :to="{ path: '/about' }">About</router-link>
  </div>
</template>

2. 编程式导航

在组件的方法中可以使用编程式导航,通过访问 this.$router 对象来进行跳转、前进、后退等操作。

<template>
  <button @click="gotoHome">Go to Home</button>
</template>

<script>
export default {
  methods: {
    gotoHome() {
      // 跳转到 /home 路由
      this.$router.push('/home');
    }
  }
};
</script>

3. 导航守卫

导航守卫允许在路由跳转前、跳转后、路由更新等时刻执行额外的逻辑,可以用来进行权限验证、数据加载等操作。常见的导航守卫有 beforeEachbeforeResolveafterEach

const router = new VueRouter({
  routes: [...],
});

router.beforeEach((to, from, next) => {
  // 在跳转之前做一些逻辑处理,比如权限验证
  if (to.meta.requiresAuth && !isAuthenticated) {
    next('/login');
  } else {
    next(); // 继续执行路由跳转
  }
});

4.简单实现:

image.png

image.png

总而言之

Vue Router 结合了 Vue.js 的核心特性,如组件化和响应式数据,为开发复杂的前端单页面应用提供了理想的解决方案。通过学习和掌握 Vue Router,您将能够更加高效地构建现代化的用户界面,提升用户体验和开发效率。

欢迎大家深入学习和应用 Vue Router,探索其丰富的功能和优雅的解决方案!