络腮胡菲菲 发表于 5 天前

Vue中使用 Axios 的常见方式

1. 安装 Axios

通过 npm 安装 Axios:
npm install axios
2. 在vue组件中使用 Axios

<template>
        <div>
                <h1>项目列表</h1>
                <ul>
                        <li v-for="project in projects" :key = "priject.id">{{project.name}}</li>
                </ul>
        </div>
</template>

<script>
import axios from 'axios';

export default {
        data() {
                return {
                        projects: [];
                };
        },
        mounted(){
                this.fetchProjects();
        },
        medthods(){
                async fetchProjects() {
                        try {
                                const response = await axios.get('http://127.0.0.1:8000/api/projects/');
                                this.projects = response.data; // 将返回的数据存储到 `projects ` 中
                        } catch (error) {
                                console.error('Error fetching projects:', error);
                        }
                },
        },
};
</script>


[*]mounted(): 当组件加载时,mounted() 生命周期钩子会自动实行 fetchProjects 方法,发送请求获取数据。
[*]Axios 请求:axios.get() 发送 GET 请求,获取数据并更新 Vue 组件中的 projects 数据。
3. 全局设置 Axios



[*]假如你盼望在整个应用中都使用相同的 Axios 设置(比方 API 基础 URL、请求头等),你可以在 main.js 中进行全局设置。
import { createApp } from 'vue';
import App from './App.vue';
import axios from 'axios';

// 设置 Axios 默认基础 URL
axios.defaults.baseURL = 'http://127.0.0.1:8000/api/';
axios.defaults.headers.common['Authorization'] = 'Bearer YOUR_TOKEN';// 设置全局 Authorization 头

const app = createApp(App);
app.config.globalProperties.$axios = axios;// 将 Axios 注册为全局属性
app.mount('#app');


[*]以在任何组件中通过 this.$axios 直接访问 Axios。
4.使用全局 Axios

<template>
<div>
    <h1>项目列表</h1>
    <ul>
      <li v-for="project in projects" :key="project.id">{{ project.name }}</li>
    </ul>
</div>
</template>

<script>
export default {
data() {
    return {
      projects: [],
    };
},
mounted() {
    this.fetchProjects();
},
methods: {
    async fetchProjects() {
      try {
      const response = await this.$axios.get('projects/');
      this.projects = response.data;// 将返回的数据存储到 `projects` 中
      } catch (error) {
      console.error('Error fetching projects:', error);
      }
    },
},
};
</script>


[*]全局设置 Axios:在 main.js 中,app.config.globalProperties.$axios = axios 将 Axios 注册为全局属性,如许每个组件都能访问到它。
[*]组件使用 Axios:在组件中,替换掉原来的 import axios from 'axios',并使用 this.$axios 进行 HTTP 请求。如许,所有的 Axios 请求都可以直接通过 this.$axios 来发送。
[*]Vue 3 的任何组件中方便地使用 Axios,而无需每次都 import axios

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Vue中使用 Axios 的常见方式