在前後端分離的項目中常常會遇到當前端頁面開發完成 但是後端介面還沒好,暫不支持聯調的情況下,一般我們會用到mock數據 這邊簡單說一下最常見且經常會遇到的curd介面模擬 註:這邊可以和後端先約定好介面路徑以及入參返參的欄位,避免二次修改 安裝依賴,新建js文件,在文件中導入mock.js,模擬列表 ...
在前後端分離的項目中常常會遇到當前端頁面開發完成
但是後端介面還沒好,暫不支持聯調的情況下,一般我們會用到mock數據
這邊簡單說一下最常見且經常會遇到的curd介面模擬
註:這邊可以和後端先約定好介面路徑以及入參返參的欄位,避免二次修改
- 安裝依賴,新建js文件,在文件中導入mock.js,模擬列表數據
yarn add mockjs
const Mock = require("mockjs")
const list = []
const length = 18
for (let i = 0; i < length; i++) {
list.push(
Mock.mock({
id: '@id',
account: '@first',
name: '@name',
email: '@email',
mobile: '@phone',
sex: '@integer(0,1)',
type: "@integer(100,101)",
status: "@integer(0,1)",
})
)
}
- 查詢列表介面模擬
{
url: "/user/getPageList",
type: "post",
response: config => {
// 拿到入參
const {
name,
account,
status,
type,
pageNum,
pageSize,
} = config.body;
// 做一些查詢條件的處理
const mockData = list.filter(item => {
if (name && item.name.indexOf(name) < 0) return false
if (account && item.account.toString() !== account) return false
if (status && item.status.toString() !== status) return false
if (type && item.type.toString() !== type) return false
return true
})
// 模擬分頁
const pageList = mockData.slice((pageNum - 1) * pageSize, pageNum * pageSize)
// 返回數據
return {
resultCode: "1",
messageCode: null,
message: null,
data: {
list: pageList,
total: mockData.length
}
};
}
},
- 刪除功能介面模擬
{
url: "/user/removeRow",
type: "post",
response: config => {
const {
id
} = config.body
// 根據id找到需要刪除的元素索引
const index = list.findIndex(item => item.id === id)
// 調用splice刪除
list.splice(index, 1)
return {
resultCode: "1",
messageCode: null,
message: null,
data: 'success'
}
}
},
- 保存及編輯介面模擬
{
url: "/user/saveForm",
type: "post",
response: config => {
const {
id
} = config.body
if (id) {
// 關鍵在於id,其他入參不多贅述,格局id找到那條數據調用splice替換
const index = list.findIndex(item => item.id === id)
list.splice(index, 1, config.body)
} else {
// 如果id不存在則在列表添加一條數據
list.unshift(
Mock.mock({
id: '@id',
...config.body
})
)
}
return {
resultCode: "1",
messageCode: null,
message: null,
data: 'success'
}
}
},
如上便是簡易的curd介面模擬,具體mock-server.js的配置可去網上查閱
所有介面使用module.exports導出後,在調用時就會執行mock的介面
歡迎大家評論,如有幫助可以關註+收藏,我會經常更新博客,大家一起討論學習