前言:众所周知我们前端开发中,需要和后端密切配合的,更多的真实数据是来自于api接口的请求,基于更多的请求我们前端进行封装方法,以便于我们及时添加api和更换开发环境。
一、在vue项目中创建一个文件夹network
1.创建一个core.js文件,封装axios GET POST请求 代码如下:
import {GET,POST} from "./config"
import axios from "axios";
const instance = axios.create({
baseURL:"https://api.it120.cc",//本地开发dev版本
baseURL:"pre" //测试版本地址
baseURL:"pro"//正式版本地址
timeout:8000
})
//封装GET POST
export function request(method,url,params){
switch (method){
case GET:
return get(url,params)
case POST:
return post(url,params)
}
}
function get(url,params){
return instance.get(url,params)
}
function post(url,params){
return instance.post(url,params)
}
2.封装请求APl,处理接口数据
export const GET = "get";
export const POST ="post";
export const path ={
list:"/small4/shop/goods/list",
}
3.抛出network模块
import {request} from "./core"
import {GET,path} from "./config"
const network = {
getStoreList(params) {return request(GET,path.list,params)},
}
export default network;
4.main.js中配置
import network from "./network/index";
Vue.prototype.$network = network;
5.在home中使用
<template>
<div class="home">
<button @click="onClick">点击</button>
<div v-for="(item,index) in list" :key="index">
{{item.name}}
<img :src="item.pic" alt="" width="200px">
</div>
</div>
</template>
<script>
// @ is an alias to /src
export default {
name: 'Home',
data(){
return{
list:[],
}
},
components: {
},
methods:{
onClick(){
this.$router.push(this.$routerConfig.about.path)
}
},
//调用
mounted(){
this.$network.getStoreList({
page:"1",
pageSize:"10"
}).then((response)=>{
console.log(response.data.data)
this.list=response.data.data
}).catch((error)=>{
console.log(error)
})
}
}
</script>
总结:综上就是在vue框架中的封装api请求的全部过程及代码,从创建文件夹到细致文件,再到配置项,最后用例。希望此片博文对你有所帮助