首先下载mockjs
npm i mockjs
在src下新建mock文件夹 新建banner.js
[{
"id": "1",
"imgUrl": "/images/banner1.jpg"
},
{
"id": "2",
"imgUrl": "/images/banner2.jpg"
},
{
"id": "3",
"imgUrl": "/images/banner3.jpg"
},
{
"id": "4",
"imgUrl": "/images/banner4.jpg"
}
]
在新建mockServer.js
//新引入mockjs模块
import Mock from 'mockjs';
//吧Json数据格式引入进来 json数据格式根本没有暴露 但是可以引入
// webpack默认对外暴露的 图片 json数据格式
import banner from './banner.json'
import floor from './floor.json'
//mock数据 第一个参数请求地址 第二个参数 请求数据
Mock.mock("/mock/banner",{code:200,data:banner}); //模拟首页的轮播图数据
Mock.mock("/mock/floor",{code:200,data:floor});
在main.js中引入 mockServer.js
//引入mockServer.js ---mock数据
import '../src/mock/mockServe'
在api 下新建 mockAjax.js文件
//对axios进行二次封装
import axios from "axios"
//引入进度条
import nprogress from 'nprogress'
//引入进度条的样式 不喜欢原始颜色 可以在
import "nprogress/nprogress.css"
//start 代表进度条开始
//done 代表进度条结束
//1.利用axios对象的方法create,去创建一个axios实例
const requests = axios.create({
//配置对象
//mock开头
baseURL:"/mock",
//代表请求超时时间 5s
timeout:5000,
})
//请求拦截器 在发送请求之前 请求拦截器可以检测到 可以再请求发出去之前做一些事情
requests.interceptors.request.use((config)=>{
//config 配置对象 服务器相应数据回来以后 响应拦截器可以检测到 可以做一些事情
nprogress.start();
return config;
})
//响应拦截器
requests.interceptors.response.use((res)=>{
//成功的回调函数 服务器响应回来数据以后响应拦截器可以检测到 可以做一些事情
//进度条结束
nprogress.done()
return res.data;
},(error)=>{
//响应失败的回调函数
console.log(error);
return Promise.reject(new Error('fail'));
});
//对外暴露
export default requests;
在api/index.js 中使用
export const reqCategoryList = ()=>{
//发请求 axios发情的请求参数是promise对象
return requests({url:'/product/getBaseCategoryList',method:'GET'})
}
//引入 mock假的api
import mockRequests from './mockAjax'
//获取首页banner图
export const reqGetBannerList = () => {
return mockRequests.get('/banner')
}
//获取首页floor
export const reqGetFloorList = () => {
return mockRequests.get('/floor')
}
然后像从后台调接口一样调用数据就可以了
|