前端开发:axios在项目中的应用

简介: 前端开发:axios在项目中的应用

用到的模块:

Vue: https://cn.vuejs.org/v2/guide/

Axios: http://www.axios-js.com/zh-cn/docs/

vant: https://youzan.github.io/vant/#/zh-CN/intro


可参考文章

  1. 前端开发:axios在vue中的使用
  2. 前端开发:vant在vue中的使用

1、接口配置

server/contactApi.js

// 统一接口管理
const CONTACT_API = {
    // 获取联系人列表
    getContactList: {
        method: "get",
        url: "/contactList.json"
    }
}


export default CONTACT_API

2、配置全局的Http请求函数

server/http.js

import axios from "axios";

import contactApi from "./contactApi"
import {Toast} from "vant"

let instance = axios.create({
baseURL: "/",
timeout: 1000 // 毫秒
})

// 包装请求方法的容器
const Http = {}

for(let key in contactApi){
let api = contactApi[key]

// async 作用,避免进入回调地狱
Http[key] = async function(data){
let response = {};
try{
response = await instanceapi.method
}catch(err){
response = err;
}
return response;
}
}

// 请求拦截器
instance.interceptors.request.use(
config => {
Toast.loading({
mask: false,
duration: 0, // 一直存在
forbidClick: true, // 禁止点击
message: "加载中..."
})
return config;
},()=>{
Toast.clear()
Toast("请求出错")
}
)

// 添加响应拦截器
instance.interceptors.response.use(
res => {
Toast.clear()
return res.data;
},()=>{
Toast.clear()
Toast("请求出错")
}
)

export default Http

3、全局挂载

main.js


// 把Http挂在到vue实例上,全局可用
Vue.prototype.$Http = Http

4、视图中调用http

views/VantIndex.vue









// 引入组件
import { ContactList } from "vant";

export default {
name: "vantIndex",

data() {
return {
list: []
};
},

// 注册组件
components: {
[ContactList.name]: ContactList
},

methods: {
async getContactList() {
let res = await this.$Http.getContactList({ name: "Tom" });
this.list = res.data;
}
},

// mounted creared
creared() {
this.getContactList();
}
};

5、修改路由

router.js

routes: [
{
path: '/',
name: 'index',
component: () => import('./views/VantIndex.vue')
}
]

6、测试数据 public/contactList.json

{
"code": 200,
"data": [
{
"name": "张三",
"tel": "13000000000",
"id": 1
},
{
"name": "李四",
"tel": "13000000001",
"id": 2
},
{
"name": "王五",
"tel": "13000000002",
"id": 3
}
]
}

启动服务访问测试

npm run serve

http://localhost:8080/

d21.4.png



            </div>
目录
相关文章
|
7月前
|
测试技术 API 人机交互
如何让 Agent 规划调用工具
本文主要从规划的重要性、工具设计的作用、优化实践、适用场景几个方面讲述在构建多工具智能体(Agent)系统时,通过引入结构化的“思考与规划”工具和合理的提示工程,能够显著提升模型解决问题的效率和效果。
1191 26
如何让 Agent 规划调用工具
|
5月前
|
安全 Java 微服务
Java 最新技术和框架实操:涵盖 JDK 21 新特性与 Spring Security 6.x 安全框架搭建
本文系统整理了Java最新技术与主流框架实操内容,涵盖Java 17+新特性(如模式匹配、文本块、记录类)、Spring Boot 3微服务开发、响应式编程(WebFlux)、容器化部署(Docker+K8s)、测试与CI/CD实践,附完整代码示例和学习资源推荐,助你构建现代Java全栈开发能力。
666 1
|
11月前
|
存储 人工智能 Serverless
智能理解 PPT 内容,快速生成讲解视频
本方案利用函数计算 FC 部署 Web 应用,调用百炼模型服务实现 PPT 到视频的自动转换。视觉模型智能理解 PPT 图文内容,快速生成相匹配的解说词;文本模型对解说词进行优化,提高其可读性和吸引力;语音模型则根据解说词生成生动流畅的旁白音频。整个过程高度集成,只需一键操作,系统即可自动整合图片、文本和音频素材,快速生成对应讲解视频。
1045 17
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能与情感计算:AI如何理解人类情感
人工智能与情感计算:AI如何理解人类情感
2118 20
|
Dart Android开发 开发者
掌握跨平台移动应用开发:Flutter 的崛起
【10月更文挑战第9天】本文介绍了Flutter,一个由Google支持的开源UI工具包,专注于跨平台移动应用开发。文章详细探讨了Flutter的核心优势,如原生性能、热重载、丰富的组件及高可定制性,并提供了实施开发的步骤指南。此外,还分享了Flutter在快速原型开发、高性能应用及跨平台维护中的应用实例和实战技巧,旨在帮助开发者高效利用Flutter构建高质量移动应用。
|
存储 移动开发 数据管理
localStorage 和 sessionStorage 的相同与不同
`localStorage` 和 `sessionStorage` 是 HTML5 提供的两种 Web 存储机制,用于在用户的浏览器中存储数据。它们都采用键值对形式存储字符串数据,并遵循同源策略,容量约为 5-10 MB。两者均支持 `setItem`、`getItem` 等方法。主要区别在于存储期限和作用域:`localStorage` 数据持久化,适用于用户偏好设置等长期存储;`sessionStorage` 数据仅限当前会话,适用于表单信息等临时数据。根据需求选择合适的存储方式可提升用户体验和数据管理效率。
|
Linux iOS开发 MacOS
Matplotlib 教程 之 Matplotlib 中文显示 2
Matplotlib 中文显示教程:介绍如何在 Matplotlib 中显示中文,包括设置 Matplotlib 字体参数和下载支持中文的字体库。通过设置 `plt.rcParams[&#39;font.family&#39;]` 为系统中的中文字体(如 SimHei、WenQuanYi Micro Hei、Heiti TC),可以实现中文的正确显示。
395 0
【Stable Diffusion应用案例系列】【1】一键抠图--rembg插件安装与使用
【Stable Diffusion应用案例系列】【1】一键抠图--rembg插件安装与使用
【Stable Diffusion应用案例系列】【1】一键抠图--rembg插件安装与使用
|
API 网络安全 数据安全/隐私保护
outlook邮箱imap怎么开启
outlook邮箱imap怎么开启
|
关系型数据库 MySQL 数据库
【MySQL】:超详细MySQL完整安装和配置教程
【MySQL】:超详细MySQL完整安装和配置教程
43493 5