Vue2和Vue3axios的如何使用,Vue3全局配置axios,axios全局配置

简介: Vue2和Vue3axios的如何使用,Vue3全局配置axios,axios全局配置

1、axios的使用第一步先装包

npm i axios -S

2、axios的使用方法,先导入包,再绑定事件,再注册事件

3、axios如何实现post请求

4、Vue挂载axios,简便输入地址:

5、通过this实例,可以访问到axios的链接

6、给他改成$http的格式

7、要发起请求用this.$http

8、这样写法耦合死比较严重,如何进行修改:

9、这时我们可以通过axios做一些全局配置,在main.js文件中

10、后使用直接写,路径地址就行,这样比较方便一些

11、这种做法最大的缺点是无法实现API的副用

Vue3axios的使用:

所有组件都由App管

第一步,先在utils下创建一个request.js文件

第二步:utils下的request.js文件:

import axios from "axios";
import { ElMessage } from "element-plus";
 
const baseURL = '/api';
const instance = axios.create({
    baseURL: baseURL
});
import { useTokenStore } from '@/stores/token.js'
//添加请求拦截器
instance.interceptors.request.use(
    (config) => {
        //请求前的回调
        //添加token
        const tokenStore = useTokenStore();
        //判断有没有token
        if (tokenStore.token) {
            config.headers.Authorization = tokenStore.token
        }
        return config;
    },
    (err) => {
        //请求错误的回调
        Promise.reject(err)
    }
)
instance.interceptors.response.use(
    result => {
        // 判断业务状态代码
        if (result.data.code === 0) {
            return result.data;
        }
        // 操作失败
        // alert(result.data.msg ? result.data.msg : '服务异常')
        ElMessage.error(result.data.msg ? result.data.msg : '服务异常')
        return Promise.reject(result.data)
    },
    err => {
        alert('服务异常');
        return Promise.reject(err);
    }
)
// 导出axios自定义函数
export default instance

第三步:不同的接口写不同的方法,之后调用API接口就在Api里写就行了,用的时候先import内容

参考资料:

home样式_1_哔哩哔哩_bilibili

Vue3接口的资料参考,72节:

安装下载

实战篇-60_大事件_注册_接口调用_哔哩哔哩_bilibili

Vue2调用axios获取数据方法

Vue3要求是在request.js中写好,然后在API中的URL写好路径,API的是访问的接口,request.js中的是baseURL,是后端的那个9090

import axios from "axios";
import { ElMessage } from "element-plus";
 
const baseURL = 'http://localhost:9090';
const instance = axios.create({
    baseURL: baseURL
});
import { useTokenStore } from '@/stores/token.js'
//添加请求拦截器
instance.interceptors.request.use(
    (config) => {
        //请求前的回调
        //添加token
        const tokenStore = useTokenStore();
        //判断有没有token
        if (tokenStore.token) {
            config.headers.Authorization = tokenStore.token
        }
        return config;
    },
    (err) => {
        //请求错误的回调
        Promise.reject(err)
    }
)
instance.interceptors.response.use(
    result => {
        // 判断业务状态代码
        if (result.data.code === 0) {
            return result.data;
        }
        // 操作失败
        // alert(result.data.msg ? result.data.msg : '服务异常')
        ElMessage.error(result.data.msg ? result.data.msg : '服务异常')
        return Promise.reject(result.data)
    },
    err => {
        alert('服务异常');
        return Promise.reject(err);
    }
)
// 导出axios自定义函数
export default instance

一个类似这样的get请求方法,如何写

看Vue3各种接口编写,这一种如果把参数写过去的话,会以json格式传过去,意思是向后端发送json数据 遍历他,会有响应的数据

用的时候import导入就行

Vue3全局挂载使用axios和设置baseURL

import { createApp } from 'vue'
import { QuillEditor } from '@vueup/vue-quill'
import '@vueup/vue-quill/dist/vue-quill.snow.css';
import App from './App.vue'
import router from '@/router'
import { createPinia } from 'pinia'
import { createPersistedState } from 'pinia-persistedstate-plugin'
import ElementPlus from 'element-plus'
import locale from 'element-plus/theme-chalk/index.css'
import * as ElementPlusIconsVue from '@element-plus/icons'
import axios from "axios";
// Vue.prototype.$http=axios;
// axios.defaults.baseURL="http://localhost:9090"
// import editor from '@/views/editorViewDemo.vue'
// main.ts
 
import 'element-plus/dist/index.css'
const app = createApp(App)
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
    app.component(key, component)
}
app.config.globalProperties.$http =axios;
axios.defaults.baseURL="http://localhost:9090";
相关文章
|
1月前
|
JavaScript C++
使用 Vite 创建 Vue3+TS 项目并整合 ElementPlus、Axios、Pinia、Less、Vue-router 等组件或插件
本文详细介绍了如何使用Vite创建Vue3+TypeScript项目,并整合ElementPlus、Axios、Pinia、Less、Vue-router等组件或插件的步骤和配置方法。
297 1
|
1月前
|
JavaScript 前端开发 C++
使用 Vue-Cli 创建 Vue3+TS 项目并整合 ElementPlus、Axios 等组件或插件
本文详细记录了如何使用Vue-Cli工具创建一个Vue3+TypeScript项目,并整合ElementPlus组件库和Axios等插件,包括项目的创建、配置、启动和插件封装使用等步骤。
23 0
|
3月前
|
前端开发 JavaScript API
技术经验分享:axios的全局配置baseUrl
技术经验分享:axios的全局配置baseUrl
93 3
|
2月前
vue3 在 watchEffect 里中断未完成的 axios 请求(只保留最后一次请求的方法---连续点击查询按钮的优化)
vue3 在 watchEffect 里中断未完成的 axios 请求(只保留最后一次请求的方法---连续点击查询按钮的优化)
55 0
|
3月前
|
XML 前端开发 JavaScript
Vue3数据交互axios
Vue3数据交互axios
28 0
|
1月前
|
JavaScript 前端开发
【Vue面试题二十五】、你了解axios的原理吗?有看过它的源码吗?
这篇文章主要讨论了axios的使用、原理以及源码分析。 文章中首先回顾了axios的基本用法,包括发送请求、请求拦截器和响应拦截器的使用,以及如何取消请求。接着,作者实现了一个简易版的axios,包括构造函数、请求方法、拦截器的实现等。最后,文章对axios的源码进行了分析,包括目录结构、核心文件axios.js的内容,以及axios实例化过程中的配置合并、拦截器的使用等。
【Vue面试题二十五】、你了解axios的原理吗?有看过它的源码吗?
|
1月前
|
JavaScript 前端开发
【Vue面试题二十七】、你了解axios的原理吗?有看过它的源码吗?
文章讨论了Vue项目目录结构的设计原则和实践,强调了项目结构清晰的重要性,提出了包括语义一致性、单一入口/出口、就近原则、公共文件的绝对路径引用等原则,并展示了单页面和多页面Vue项目的目录结构示例。
|
12天前
|
JavaScript 前端开发 开发者
vue中使用axios请求post接口,请求会发送两次
vue中使用axios请求post接口,请求会发送两次
|
1月前
|
JSON JavaScript 前端开发
【Vue面试题二十四】、Vue项目中有封装过axios吗?主要是封装哪方面的?
这篇文章讨论了在Vue项目中封装axios的最佳实践,包括设置接口请求前缀、请求头、状态码、请求方法的封装,以及如何使用请求和响应拦截器来处理token和响应状态,从而简化HTTP请求的配置和错误处理,提高代码的可维护性。
【Vue面试题二十四】、Vue项目中有封装过axios吗?主要是封装哪方面的?
|
1月前
|
JavaScript 前端开发
vue引入axios出现Module parse failed: Unexpected token (5:2)
vue引入axios出现Module parse failed: Unexpected token (5:2) 页面显示 Cannot GET /