Vue 中 Axios 配置指南

打印 上一主题 下一主题

主题 801|帖子 801|积分 2403

Axios 是一个基于 Promise 的 HTTP 客户端,实用于浏览器和 Node.js 环境。在 Vue 项目中,Axios 常用于与后端 API 进行通讯。本文将介绍如安在 Vue 项目中配置和使用 Axios。
一、安装 Axios

起首,你需要在 Vue 项目中安装 Axios。通过 npm 或 yarn 安装:
  1. [/code] [code]npm install axios --save
  2. # 或
  3. yarn add axios
复制代码
二、全局配置 Axios

在 Vue 项目中,你可以在项目的入口文件(如 main.js)中进行 Axios 的全局配置。这样,在整个项目中都可以使用这个配置。
  1. [/code] [code]import Vue from 'vue';
  2. import axios from 'axios';
  3. // 创建 axios 实例
  4. const instance = axios.create({
  5. baseURL: 'https://api.example.com', // 设置基础 URL
  6. timeout: 5000, // 设置请求超时时间
  7. headers: {
  8. 'Content-Type': 'application/json'
  9. }
  10. });
  11. // 请求拦截器
  12. instance.interceptors.request.use(config => {
  13. // 在发送请求之前做些什么,例如添加 token
  14. const token = localStorage.getItem('token');
  15. if (token) {
  16. config.headers['Authorization'] = `Bearer ${token}`;
  17. }
  18. return config;
  19. }, error => {
  20. // 对请求错误做些什么
  21. return Promise.reject(error);
  22. });
  23. // 响应拦截器
  24. instance.interceptors.response.use(response => {
  25. // 对响应数据做点什么
  26. return response.data;
  27. }, error => {
  28. // 对响应错误做点什么
  29. return Promise.reject(error);
  30. });
  31. // 将 axios 实例挂载到 Vue 原型上
  32. Vue.prototype.$axios = instance;
  33. new Vue({
  34. render: h => h(App)
  35. }).$mount('#app');
复制代码
三、在组件中使用 Axios

在 Vue 组件中,你可以通过 this.$axios 访问全局配置的 Axios 实例,发起 HTTP 哀求。
  1. [/code] [code]<template>
  2. <div>
  3. <h1>用户列表</h1>
  4. <ul>
  5. <li v-for="user in users" :key="user.id">{{ user.name }}</li>
  6. </ul>
  7. </div>
  8. </template>
  9. <script>
  10. export default {
  11. data() {
  12. return {
  13. users: []
  14. };
  15. },
  16. created() {
  17. this.fetchUsers();
  18. },
  19. methods: {
  20. async fetchUsers() {
  21. try {
  22. const response = await this.$axios.get('/users');
  23. this.users = response.data;
  24. } catch (error) {
  25. console.error('获取用户列表失败:', error);
  26. }
  27. }
  28. }
  29. };
  30. </script>
复制代码
四、局部配置 Axios

如果你只想在某个组件中使用 Axios,而不是全局配置,可以在组件内部直接引入 Axios 并创建实例。
  1. [/code]
  2. [code]<template>
  3. <div>
  4. <h1>用户详情</h1>
  5. <p>{{ user.name }}</p>
  6. </div>
  7. </template>
  8. <script>
  9. import axios from 'axios';
  10. export default {
  11. data() {
  12. return {
  13. user: {}
  14. };
  15. },
  16. created() {
  17. this.fetchUser();
  18. },
  19. methods: {
  20. async fetchUser() {
  21. try {
  22. const response = await axios.get('https://api.example.com/users/1');
  23. this.user = response.data;
  24. } catch (error) {
  25. console.error('获取用户详情失败:', error);
  26. }
  27. }
  28. }
  29. };
  30. </script>
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

道家人

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表