一、簡單使用:
1、直接拷貝better-mock.js文件到工程:

2、然后就OK了,能在uni-app Vue頁面中直接調用。
二、工程化:

import mockA from './mock-abc/mock-a.js' import mockB from './mock-abc/mock-b.js' function execMock(){ mockA.mockA(); mockB.mockB(); } module.exports={execMock}
// 界面A的Mock Data import Mock from '@/libs/mock/better-mock.mp.js' function mockA(){ Mock.mock('https://sontech-cloud-texpro-ews001.hz.wise-paas.com.cn/mocka',{ // 屬性 list 的值是一個數組,其中含有3個元素 'list|3': [{ 'name|3': '錢學森', 'age|1-100': 1, 'isGay|4-6': true, 'people|+1': ['黃種人', '黑種人', '白種人'], 'sayHi': /[a-z][A-Z][0-9]/ }] }); // 輸出結果 // console.log(JSON.stringify(res, null, 4));//使用四個空格縮進 } module.exports={mockA}
B模塊與A模塊基本一致。
三、全局注入:

四、Vue頁面調用,然后Mock.js會自動攔截ajax請求:
<template>
<view>
<view v-for="(item,index) in list" :key="index">
<text style="color: white;">{{item.name}}</text>
</view>
</view>
</template>
<script>
import ajax from "@/api/method.js";
var _self;
export default {
data() {
return {
list: []
}
},
onLoad() {},
created() {
_self=this;
let url1 = '/mocka';
ajax.getMethod(url1, function (res) {
console.log(JSON.stringify(res));
_self.list=res.data.list;
})
let url2 = '/mockb';
ajax.getMethod(url2, function (res) {
console.log(JSON.stringify(res));
})
}
}
</script>
<style>
</style>
方案選型:
1、采用大搜車的Easy Mock:https://www.easy-mock.com/
優點:網站功能豐富
缺點:網站有時候會卡死,可能訪問人數多
2、本地部署Easy Mock:https://github.com/easy-mock/easy-mock
優點:a.功能豐富;b.前后端分離,Swagger作為測試工具
缺點:方案還是太重了,由於團隊小,我只是想用最簡單的方式,集成到微信小程序中;
2、采用Mock.js:https://github.com/nuysoft/Mock
優點:采用人數較多;
缺點:未能直接支持微信小程序;
3、采用Fork自Mock.js,並對微信做了適配的庫:https://github.com/lavyun/better-mock
優點:能直接支持微信小程序;
缺點:Star數少,但考慮到並未改變Mock.js的用法,因此最終選定了該方案。
4、微信開發者工具提供的方案:https://developers.weixin.qq.com/miniprogram/dev/devtools/api-mock.html
還沒認真考究,不過好像不利於工程化。
