前端开发: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

<template>
<div>
<!-- 联系人列表 -->
<van-contact-list :list="list" />

</div>
</template>

<script>
// 引入组件
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();
}
};
</script>

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>
目录
相关文章
|
3月前
|
传感器 人工智能 自然语言处理
魔搭社区模型速递(7.26-8.2)
🙋魔搭ModelScope本期社区进展:1498个模型,130个数据集,85个创新应用, 7 篇内容
495 0
|
SQL Java 数据库连接
Pagehelper超级好用的分页插件
Pagehelper超级好用的分页插件
2253 0
|
JavaScript Linux C语言
【NodeJS】GLIBC_2.28 not found CentOS7不兼容Node高版本
【NodeJS】GLIBC_2.28 not found CentOS7不兼容Node高版本
3436 2
【NodeJS】GLIBC_2.28 not found CentOS7不兼容Node高版本
|
计算机视觉 Python
Py之cv2:cv2库(OpenCV,opencv-python)的简介、安装、使用方法(常见函数、方法等)最强详细攻略(二)
Py之cv2:cv2库(OpenCV,opencv-python)的简介、安装、使用方法(常见函数、方法等)最强详细攻略
Py之cv2:cv2库(OpenCV,opencv-python)的简介、安装、使用方法(常见函数、方法等)最强详细攻略(二)
|
JavaScript 测试技术 Docker
《第一本Docker书(修订版)》——2.5 在Windows中安装Docker Toolbox
如果使用的是Microsoft Windows系统,也可以使用Docker Toolbox工具快速上手Docker。Docker Toolbox是一个Docker组件的集合,还包括一个极小的虚拟机,在Windows宿主机上安装了一个支持命令行工具,并提供了一个Docker环境。
2533 0
|
2天前
|
搜索推荐 编译器 Linux
一个可用于企业开发及通用跨平台的Makefile文件
一款适用于企业级开发的通用跨平台Makefile,支持C/C++混合编译、多目标输出(可执行文件、静态/动态库)、Release/Debug版本管理。配置简洁,仅需修改带`MF_CONFIGURE_`前缀的变量,支持脚本化配置与子Makefile管理,具备完善日志、错误提示和跨平台兼容性,附详细文档与示例,便于学习与集成。
268 116
|
17天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~