当前位置:首页 > VUE

vue实现拦截器

2026-01-20 16:11:26VUE

Vue 拦截器实现方法

在 Vue 中,拦截器通常用于在 HTTP 请求或响应被处理前进行统一操作,例如添加认证信息、错误处理等。以下是几种常见的拦截器实现方式:

使用 Axios 拦截器

Axios 是 Vue 生态中常用的 HTTP 客户端,支持请求和响应拦截器。

安装 Axios:

npm install axios

创建拦截器示例:

import axios from 'axios';

// 请求拦截器
axios.interceptors.request.use(
  config => {
    // 在发送请求前添加 token
    const token = localStorage.getItem('token');
    if (token) {
      config.headers.Authorization = `Bearer ${token}`;
    }
    return config;
  },
  error => {
    return Promise.reject(error);
  }
);

// 响应拦截器
axios.interceptors.response.use(
  response => {
    return response;
  },
  error => {
    // 统一处理错误响应
    if (error.response.status === 401) {
      // 跳转到登录页
      window.location.href = '/login';
    }
    return Promise.reject(error);
  }
);

Vue Router 导航守卫

Vue Router 提供了全局前置守卫(beforeEach)和全局后置钩子(afterEach),可用于拦截路由跳转。

import router from './router';

router.beforeEach((to, from, next) => {
  const isAuthenticated = localStorage.getItem('token');
  if (to.meta.requiresAuth && !isAuthenticated) {
    next('/login');
  } else {
    next();
  }
});

Vue 自定义指令拦截

通过自定义指令实现对 DOM 操作的拦截。

Vue.directive('permission', {
  inserted: function (el, binding) {
    const hasPermission = checkPermission(binding.value);
    if (!hasPermission) {
      el.parentNode.removeChild(el);
    }
  }
});

组合式 API 拦截

在 Vue 3 中,可以使用组合式 API 实现更灵活的拦截逻辑。

import { onBeforeMount } from 'vue';

export default {
  setup() {
    onBeforeMount(() => {
      const isAuth = localStorage.getItem('token');
      if (!isAuth) {
        router.push('/login');
      }
    });
  }
};

注意事项

  • 拦截器应避免阻塞主流程,确保逻辑简洁高效。
  • 错误处理需全面,避免未捕获的异常影响用户体验。
  • 对于敏感操作,应结合后端验证,前端拦截仅作为辅助手段。

vue实现拦截器

标签: 拦截器vue
分享给朋友:

相关文章

vue 实现目录

vue 实现目录

Vue 实现目录的方法 在 Vue 项目中实现目录功能,可以通过以下几种方式实现,具体取决于需求和技术栈。 使用 Vue Router 实现路由目录 Vue Router 是 Vue.js 的官方…

vue实现共享屏幕

vue实现共享屏幕

共享屏幕的基本实现 在Vue中实现共享屏幕功能通常需要结合浏览器的getDisplayMedia API。以下是一个基础实现示例: <template> <div>…

vue实现上移下移插件

vue实现上移下移插件

实现上移下移功能的 Vue 插件 在 Vue 中实现列表项的上移和下移功能,可以通过自定义指令或组件封装的方式完成。以下是两种常见实现方式: 基于数组操作的通用方法 通过操作数组索引实现元素位置交…

vue 方法实现

vue 方法实现

在 Vue 中,方法的实现通常通过 methods 选项完成。以下是 Vue 方法实现的核心要点和示例: 基本方法定义 在 Vue 组件中定义方法时,需将函数声明放在 methods 对象内。这些方…

实现vue组件

实现vue组件

Vue 组件的基本实现 Vue 组件是 Vue.js 的核心特性之一,允许将 UI 拆分为独立、可复用的模块。以下是实现 Vue 组件的几种方式: 单文件组件 (SFC) 使用 .vue 文件格式,…

vue实现闪烁

vue实现闪烁

Vue实现元素闪烁效果 使用CSS动画实现 通过Vue绑定class结合CSS动画实现闪烁效果,代码简洁且性能较好。 <template> <div :class="{ 'b…