前端技术分享:Vue.js 动态路由与守卫

简介: 【10月更文挑战第1天】前端技术分享:Vue.js 动态路由与守卫

前端技术分享:Vue.js 动态路由与守卫

Vue.js 是一款流行的 JavaScript 框架,它以其易用性、灵活性和高效性而受到广大开发者喜爱。Vue 路由是 Vue 官方提供的路由管理器,它使 Vue 应用程序可以轻松地管理单页应用中的导航逻辑和视图匹配。本文将介绍如何在 Vue.js 中配置动态路由,并使用路由守卫来控制导航行为。

一、Vue Router 简介

Vue Router 是 Vue.js 官方的路由管理器,它与 Vue.js 核心深度集成,让构建单页面应用变得简单。Vue Router 支持嵌套路由配置、嵌套视图、命名视图等功能,同时还提供了丰富的 API 来拦截和控制导航。

二、设置 Vue Router

首先,我们需要安装 Vue Router:

npm install vue-router

接下来,创建一个简单的路由配置文件 router.js

import Vue from 'vue';
import VueRouter from 'vue-router';
import Home from './views/Home.vue'; // 引入首页组件
import User from './views/User.vue'; // 引入用户详情页组件

Vue.use(VueRouter);

const routes = [
  {
    path: '/', component: Home },
  {
    path: '/user/:id', component: User }
];

const router = new VueRouter({
   
  mode: 'history',
  routes
});

export default router;

这里我们定义了两个路由:一个根路径 / 映射到 Home 组件,另一个 /user/:id 是动态路由,其中 :id 表示动态参数,映射到 User 组件。

三、动态路由与组件通信

在 Vue 组件中,可以通过 $route 对象访问当前活跃路由的信息。下面是一个简单的 User 组件示例:

<template>
  <div>
    <h1>用户详情页</h1>
    <p>ID: {
  { $route.params.id }}</p>
  </div>
</template>

<script>
export default {
  name: 'User',
  created() {
    console.log(`访问了用户ID为 ${this.$route.params.id} 的页面`);
  }
}
</script>

在这个组件中,我们通过 $route.params.id 获取传递给路由的参数,并显示在页面上。

四、使用路由守卫

路由守卫(Route Guards)是 Vue Router 提供的一种机制,可以用来控制导航行为。主要有三种类型的守卫:

  • beforeEach: 全局前置守卫
  • beforeRouteEnter: 组件内的进入守卫
  • beforeRouteUpdate: 组件内的更新守卫

下面展示一个全局前置守卫的例子,用于检查用户是否登录:

import router from './router';

router.beforeEach((to, from, next) => {
   
  if (to.path === '/user' && !localStorage.getItem('auth-token')) {
   
    alert('请先登录!');
    next('/');
  } else {
   
    next();
  }
});

在这个例子中,我们检查用户是否试图访问 /user 页面,并且没有登录。如果没有登录,则导航至主页。

五、完整示例

最后,让我们把所有东西放到一起。创建一个简单的 Vue 实例,并将其与路由配置连接起来:

import Vue from 'vue';
import router from './router';
import App from './App.vue';

new Vue({
   
  el: '#app',
  router,
  render: h => h(App)
});

同时,确保 HTML 文件中有对应的 #app 元素:

<div id="app"></div>

六、总结

本文介绍了如何在 Vue.js 中设置和使用动态路由,以及如何利用路由守卫来增强应用的功能。通过动态路由,我们可以更加灵活地组织应用结构;而路由守卫则为我们的应用提供了额外的安全性和逻辑控制。希望这篇教程能帮助你在自己的项目中更好地运用 Vue Router。

相关文章
|
11月前
|
JavaScript 前端开发 开发者
Nest.js控制器深度解析:路由与请求处理的高级特性
以上就是对 NestJS 控制层高级特性深度解析:从基本概念到异步支持再到更复杂场景下拦截其与管道等功能性组件运用都有所涉及,希望能够帮助开发者更好地理解和运用 NestJS 进行高效开发工作。
539 15
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
801 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
JavaScript 前端开发 API
|
前端开发 JavaScript 数据可视化
58K star!这个让网页动起来的JS库,前端工程师直呼真香!
Anime.js 是一款轻量级但功能强大的JavaScript动画引擎,它能够以最简单的方式为网页元素添加令人惊艳的动效。这个项目在GitHub上已经获得58,000+星标,被广泛应用于电商页面、数据可视化、游戏开发等场景。
780 8
|
资源调度 JavaScript 前端开发
前端开发必备!Node.js 18.x LTS保姆级安装教程(附国内镜像源配置)
本文详细介绍了Node.js的安装与配置流程,涵盖环境准备、版本选择(推荐LTS版v18.x)、安装步骤(路径设置、组件选择)、环境验证(命令测试、镜像加速)及常见问题解决方法。同时推荐开发工具链,如VS Code、Yarn等,并提供常用全局包安装指南,帮助开发者快速搭建高效稳定的JavaScript开发环境。内容基于官方正版软件,确保合规性与安全性。
15919 23
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
1286 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
|
JavaScript 前端开发 Java
springboot解决js前端跨域问题,javascript跨域问题解决
本文介绍了如何在Spring Boot项目中编写Filter过滤器以处理跨域问题,并通过一个示例展示了使用JavaScript进行跨域请求的方法。首先,在Spring Boot应用中添加一个实现了`Filter`接口的类,设置响应头允许所有来源的跨域请求。接着,通过一个简单的HTML页面和jQuery发送AJAX请求到指定URL,验证跨域请求是否成功。文中还提供了请求成功的响应数据样例及请求效果截图。
431 3
springboot解决js前端跨域问题,javascript跨域问题解决
|
前端开发 API 开发者
Next.js 实战 (五):添加路由 Transition 过渡效果和 Loading 动画
这篇文章介绍了Framer Motion,一个为React设计的动画库,提供了声明式API处理动画和页面转换,适合创建响应式用户界面。文章包括首屏加载动画、路由加载Loading、路由进场和退场动画等主题,并提供了使用Framer Motion和next.js实现这些动画的示例代码。最后,文章总结了这些效果,并邀请读者探讨更好的实现方案。
521 0
Next.js 实战 (五):添加路由 Transition 过渡效果和 Loading 动画
|
缓存 JavaScript 前端开发
JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用
本文深入讲解了 JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用。
1186 5
|
缓存 前端开发 JavaScript
JavaScript前端路由的实现原理及其在单页应用中的重要性,涵盖前端路由概念、基本原理、常见实现方式
本文深入解析了JavaScript前端路由的实现原理及其在单页应用中的重要性,涵盖前端路由概念、基本原理、常见实现方式(Hash路由和History路由)、优点及挑战,并通过实际案例分析,帮助开发者更好地理解和应用这一关键技术,提升用户体验。
859 1

热门文章

最新文章

  • 1
    前端如何存储数据:Cookie、LocalStorage 与 SessionStorage 全面解析
    1285
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    589
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    448
  • 4
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    452
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    575
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    749
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    1472
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    325
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    1188
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    527