# node
| |
| npm install mockjs |
| |
| yarn add mockjs |
# 使用
| |
| var Mock = require('mockjs') |
| var data = Mock.mock({ |
| |
| 'list|1-10': [{ |
| |
| 'id|+1': 1 |
| }] |
| }) |
| |
| console.log(JSON.stringify(data, null, 4)) |
# vue
使用步骤
- 定义数据结构
- 设置 mock 服务器
- 封装 axios
- 使用
# 定义数据结构
定义好要模拟数据的基本 json
结构,结构中可以使用 mock 提供的语法随机输出数据
| # banners.json |
| [ |
| { |
| "id":"1", |
| "imgUrl":"/images/banner1.jpg" |
| }, |
| { |
| "id":"2", |
| "imgUrl":"/images/banner2.jpg" |
| }, |
| { |
| "id":"3", |
| "imgUrl":"/images/banner3.jpg" |
| }, |
| { |
| "id":"4", |
| "imgUrl":"/images/banner4.jpg" |
| } |
| ] |
# 设置 mock 服务器
让 mock 模拟出接口,axios 请求往模拟出的接口里发
| |
| import Mock from 'mockjs'; |
| import banners from './banners.json'; |
| |
| |
| Mock.mock('/mock/banners',{ |
| code:200, |
| data:banners |
| }); |
# 封装 axios
封装好发往 mock 服务器的请求拦截器和响应拦截器
| |
| import axios from "axios"; |
| import NProgress from "nprogress"; |
| import "nprogress/nprogress.css"; |
| |
| |
| NProgress.configure({ showSpinner: false }); |
| |
| |
| const service = axios.create({ |
| baseURL: '/mock', |
| timeout: 30000, |
| }); |
| |
| |
| service.interceptors.request.use((config) => { |
| |
| NProgress.start(); |
| return config; |
| }); |
| |
| service.interceptors.response.use( |
| (response) => { |
| |
| NProgress.done(); |
| if (response.data.code === 200) { |
| return response.data; |
| } else { |
| return Promise.reject(response.message); |
| } |
| }, |
| (error) => { |
| NProgress.done(); |
| |
| alert(`请求出错${error.message}`||`未知错误`); |
| return Promise.reject(error); |
| } |
| ); |
| |
| export default service; |
# 使用
| import mockAjax from './mockAjax'; |
| |
| export const reqBanners = () => mockAjax('/banners'); |
| |
| requBannners().then( |
| value => value, |
| error => error |
| ); |