http://mockjs.com/examples.html#DPD
1、使用npm安装:npm install mockjs;
或直接<script src="http://mockjs.com/dist/mock.js"></script>
2、创建mock.js文件
mock.js 代码如下
import Mock from 'mockjs' // 引入mockjs
const Random = Mock.Random // Mock.Random 是一个工具类,用于生成各种随机数据
const domain = 'http://mockjs.com/api' // 定义默认域名,随便写
let data = [] // 用于接受生成数据的数组
let size = [
'300x250', '250x250', '240x400', '336x280',
'180x150', '720x300', '468x60', '234x60',
'88x31', '120x90', '120x60', '120x240',
'125x125', '728x90', '160x600', '120x600',
'300x600'
] // 定义随机值
for (let i = 0; i < 10; i++) { // 可自定义生成的个数
let template = {
'Boolean': Random.boolean, // 可以生成基本数据类型
'Natural': Random.natural(1, 10), // 生成1到100之间自然数
'Integer': Random.integer(1, 100), // 生成1到100之间的整数
'Float': Random.float(0, 100, 0, 5), // 生成0到100之间的浮点数,小数点后尾数为0到5位
'Character': Random.character(), // 生成随机字符串,可加参数定义规则
'String': Random.string(2, 10), // 生成2到10个字符之间的字符串
'Range': Random.range(0, 10, 2), // 生成一个随机数组
'Date': Random.date(), // 生成一个随机日期,可加参数定义日期格式
'Image': Random.image(Random.size, '#02adea', 'Hello'), // Random.size表示将从size数据中任选一个数据
'Color': Random.color(), // 生成一个颜色随机值
'Paragraph': Random.paragraph(2, 5), //生成2至5个句子的文本
'Name': Random.name(), // 生成姓名
'Url': Random.url(), // 生成web地址
'Address': Random.province() // 生成地址
}
data.push(template)
}
Mock.mock(`${domain}/data/index`, 'get', data)
let banner = [];
for (let i = 0; i < 3; i++) {
let bannerdata = {
'link': Random.url(), // 生成web地址
'image':Random.dataImage('750x400'),
}
banner.push(bannerdata)
}
let recommend = [];
for (let i = 0; i < 4; i++) {
let recommendData = {
'link': Random.url(), // 生成web地址
'image':Random.dataImage('150x150'),
}
recommend.push(recommendData)
}
// Mock.mock('/data/index', 'post', data) // 根据数据模板生成模拟数据
Mock.mock(`${domain}/home/banner`, 'get', banner);
Mock.mock(`${domain}/home/recommend`, 'get', recommend)
3、main.js 引入mock.js
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import 'network/mock' //引入mock.js
Vue.config.productionTip = false
new Vue({
router,
store,
render: h => h(App)
}).$mount('#app')
4、axios请求封装的request.js代码如下
import axios from 'axios'
export function request(config) {
// 1.创建axios的实例
const instance = axios.create({
// baseURL: 'http://123.207.32.32:8000',
baseURL: 'http://mockjs.com/api',
timeout: 5000
})
// 2.axios的拦截器
// 2.1.请求拦截的作用
instance.interceptors.request.use(config => {
return config
}, err => {
// console.log(err);
})
// 2.2.响应拦截
instance.interceptors.response.use(res => {
return res.data
}, err => {
console.log(err);
})
// 3.发送真正的网络请求
return instance(config)
}
4、页面请求接口eg:home.js
import {request} from './request';
export function banner(){
return request({
url:'/home/banner'
})
}
5、home.vue代码如下
<script>
import {banner} from "network/home";
export default {
name: "home",
data() {
return {
banners: [],
};
},
created() {
banner().then(res => {
console.log(res);
this.banners = res;
})
}
};
</script>
网友评论