前端开发: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>
目录
相关文章
|
9月前
|
数据库 C++
【数据结构进阶】红黑树超详解 + 实现(附源码)
本文深入探讨了红黑树的实现原理与特性。红黑树是一种自平衡二叉搜索树,通过节点着色(红/黑)和特定规则,确保树的高度接近平衡,从而实现高效的插入、删除和查找操作。相比AVL树,红黑树允许一定程度的不平衡,减少了旋转调整次数,提升了动态操作性能。文章详细解析了红黑树的性质、插入时的平衡调整(变色与旋转)、查找逻辑以及合法性检查,并提供了完整的C++代码实现。红黑树在操作系统和数据库中广泛应用,其设计兼顾效率与复杂性的平衡。
1915 3
|
Kubernetes Perl 容器
在K8S中,replicaset 和deploy有何区别?
在K8S中,replicaset 和deploy有何区别?
|
存储 监控 安全
某小学AK,SK泄露导致横向到云主机控制台
本文是一篇关于网络安全的漏洞分析报告,首先声明所有漏洞已修复,并警告读者不得用于非法活动,文章是关于云服务安全的,分享了一个实际案例,其中一个小学的云服务Access Key ID和Secret Access Key被泄露,导致攻击者能够接管云主机控制台。文章强调了Access Key和Secret Access Key的重要性,它们是验证用户身份和保证服务安全的关键,不应暴露给未经授权的人员。一旦泄露,攻击者可能进行数据泄露、篡改或删除操作,甚至控制整个云基础设施。作者提供了资产证明、漏洞利用过程和修复及预防措施,提醒读者加强云服务安全管理和监控。
|
存储 弹性计算 并行计算
带你读《弹性计算—无处不在的算力》第三章:计算产品和技术3.5云上高性能计算(三)
《弹性计算—无处不在的算力》第三章:计算产品和技术3.5云上高性能计算(三)
532 1
带你读《弹性计算—无处不在的算力》第三章:计算产品和技术3.5云上高性能计算(三)
|
7天前
|
数据采集 人工智能 安全
|
16天前
|
云安全 监控 安全
|
2天前
|
机器学习/深度学习 人工智能 前端开发
构建AI智能体:七十、小树成林,聚沙成塔:随机森林与大模型的协同进化
随机森林是一种基于决策树的集成学习算法,通过构建多棵决策树并结合它们的预测结果来提高准确性和稳定性。其核心思想包括两个随机性:Bootstrap采样(每棵树使用不同的训练子集)和特征随机选择(每棵树分裂时只考虑部分特征)。这种方法能有效处理大规模高维数据,避免过拟合,并评估特征重要性。随机森林的超参数如树的数量、最大深度等可通过网格搜索优化。该算法兼具强大预测能力和工程化优势,是机器学习中的常用基础模型。
266 155