当前位置:首页 > VUE

vue实现拦截器

2026-01-20 16:11:26VUE

Vue 拦截器实现方法

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

使用 Axios 拦截器

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

安装 Axios:

vue实现拦截器

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),可用于拦截路由跳转。

vue实现拦截器

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 中实现全屏功能可以通过浏览器提供的 Fullscreen API 完成。以下是一个完整的实现方案: 安装依赖(可选) 如果需要跨浏览器兼容性更好,可以安装…

vue核心实现

vue核心实现

Vue 核心实现原理 Vue.js 的核心实现主要包括响应式系统、虚拟 DOM、模板编译和组件化机制。以下是关键实现原理的详细说明: 响应式系统 Vue 使用 Object.defineProper…

vue jwt实现

vue jwt实现

Vue JWT 实现方法 安装依赖 确保项目中安装了 jsonwebtoken(后端)和 axios(前端)。若使用 Vue 3,可搭配 vue-router 和 pinia(或 vuex)管理状态。…

vue 实现原理

vue 实现原理

Vue 实现原理 Vue.js 是一个渐进式 JavaScript 框架,其核心实现原理主要包括响应式系统、虚拟 DOM、模板编译和组件化机制。以下是 Vue 实现原理的核心要点: 响应式系统 Vu…

vue实现修改

vue实现修改

Vue 实现修改功能的方法 在 Vue 中实现修改功能通常涉及表单绑定、状态管理和 API 调用。以下是几种常见实现方式: 双向数据绑定实现表单修改 使用 v-model 指令绑定表单元素与组件数据…

vue实现下拉实现

vue实现下拉实现

Vue 实现下拉菜单的方法 使用原生 HTML 和 Vue 指令 通过 Vue 的 v-model 和 v-show 指令可以快速实现下拉菜单。定义一个布尔值控制下拉菜单的显示与隐藏,点击按钮切换状态…