当前位置: 首页 > news >正文

Vue 的 axios二次封装

(以下的接口地址链接换成自己的写!!!)

首先在项目中src的目录下创建一个api的文件夹,在api的文件下在穿件两个文件用于二次封装

别忘了先安装axios:(在根目录下安装axios,如果安装过了,就不用看蓝色字体安装过程)

npm install --save axios

然后在main.js中引用axios:

// 引入axios
import {apiGet,apiPost} from './api/api'
Vue.prototype.$apiGet  = apiGet
Vue.prototype.$apiPost = apiPost

api下的第一个api.js:

import axios from 'axios';axios.defaults.timeout = 30000;
// 这个是环境测试配置,不知道可以搜索我的csdn中的Vue测试打包test
axios.defaults.baseURL = process.env.VUE_APP_API_URL// 添加响应拦截器
axios.interceptors.response.use(function (response) {//可以写if判断,提前拦截错误信息return response;}, function (err) {return Promise.reject(err);
});export function apiGet(url, params){ return new Promise((resolve, reject) =>{ axios.get(url, { params: params,headers:{"token":sessionStorage.getItem('token')}}).then(res => {resolve(res.data);}).catch(err =>{reject(err.data) }) });
}export function apiPost(url, params){return new Promise((resolve, reject) => {axios({method: 'post',url:url,data:params}).then(res => {resolve(res.data);}).catch(err =>{reject(err.data)})});}

api下的第二个https.js:

//这个是二次封装(用到apiPost的时候把下面接口那也改成这个,用不到就把apiPost去掉)
import {apiGet,apiPost} from "./api";export function jindutiao(){return new Promise((resolve)=>{apiGet("/index.php/index/admin/getNum").then(res=>{resolve(res)
})});// .catch(err=>{//     reject(err)// })}

然后按照(“jindutiao().这个是https.js中二次封装中你取的函数名字”)

先引用:import {jindutiao} from "../api/https"

在使用:jindutiao().then(res=>{

                console.log(res);

                })

二次封装在页面上的使用以上说的以下示例代码,在script中:

// 这个是二次封装后https.js中封装后直接写函数在这个页面使用
import {jindutiao} from "../api/https"
export default {data() {return {};},mounted() {//    这个是进度条接口jindutiao().then(res=>{// console.log(res);this.percentage = res.data.cssnum;this.percentage1 = res.data.htmlnum;this.percentage2 = res.data.jsnum;this.percentage3 = res.data.vuenum;}),},methods: {}}</script>

如果有跨域问题可以在最后在vue.config.js中添加以下代码解决用注释下面的:

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({publicPath:'./',transpileDependencies: true,lintOnSave:false,// 跨域问题devServer: {proxy:{'/api1':{target:'http://47.94.4.201/',pathRewrite:{'^/api1':''},ws:true,changeOrigin:true,}}}
})

http://www.lryc.cn/news/382661.html

相关文章:

  • 实验操作步骤:使用Tripwire进行文件完整性监控
  • 使用达梦DMHS平滑迁移Oracle数据到DM8
  • Java面试题:讨论事务的ACID属性,并解释在Java中如何管理事务
  • 第 5 章理解 ScrollView 并构建 Carousel UI
  • MySQL锁、加锁机制(超详细)—— 锁分类、全局锁、共享锁、排他锁;表锁、元数据锁、意向锁;行锁、间隙锁、临键锁;乐观锁、悲观锁
  • 如何在Java中实现文件上传和下载?
  • SpringBoot使用滑动窗口限流防止用户重复提交(自定义注解实现)
  • ravynOS 0.5.0 发布 - 基于 FreeBSD 的 macOS 兼容开源操作系统
  • 韩国面临的本地化挑战
  • Linux内存从0到1学习笔记(8.17 SMMU Fault调试方法)
  • 讲座学习截图——《CAD/CAE/CAM几何引擎-软件概述》(一)
  • 鸿蒙开发系统基础能力:【@ohos.hichecker (检测模式)】
  • WordPress CDN是什么?CDN有什么作用?
  • 【containerd】Containerd高阶命令行工具nerdctl
  • Spring+SpringMVC+MyBatis整合
  • springboot+vue+mybatis穷游管理系统+PPT+论文+讲解+售后
  • ClickHouse备份方案
  • windows启用和禁用内存压缩
  • MATLAB-振动问题:单自由度无阻尼振动系统受迫振动
  • 示例:WPF中应用DependencyPropertyDescriptor监视依赖属性值的改变
  • 链家房屋数据爬取与预处理-大数据采集与预处理课程设计
  • 一种502 bad gateway nginx/1.18.0的解决办法
  • 二叉树第一期:树与二叉树的概念
  • vue跨域问题,请注意你的项目是vue2还是vue3
  • 大厂晋升学习方法一:海绵学习法
  • 【ARMv8/v9 GIC 系列 4.2 -- GIC CPU Interface 详细介绍】
  • 小抄 20240619
  • 【06】数据模型和工作量证明-工作量证明
  • VBA递归过程快速组合数据
  • 基于豆瓣电影TOP250的可视化设计