摘要:表示需要攔截的請求類型。表示數(shù)據(jù)模板,可以是對象或字符串。表示用于生成響應(yīng)數(shù)據(jù)的函數(shù)。指向本次請求的選項集。生成規(guī)則是可選的。返回成功的數(shù)據(jù),就是登錄成功了,否則相反。模擬登錄接下來介紹模擬表格增刪改查。
前言
1.前后端分離
2.不需要修改既有代碼,就可以攔截 Ajax 請求,返回模擬的響應(yīng)數(shù)據(jù)。
3.數(shù)據(jù)類型豐富
4.通過隨機數(shù)據(jù),模擬各種場景。
5 項目不背鍋(等后端給接口的話可能會背鍋)
等等優(yōu)點,最后一條我加的。
npm install mockjs --save-dev
import Mock from "mockjs"
哪里用就在哪里引入。我是在項目src/mock/index.js里面使用mock.js
詳細請看官方文檔
Mock.mock( rurl?, rtype?, template|function( options ) )
這里的參數(shù)都是可選:
rurl(可選)。
表示需要攔截的 URL,可以是 URL 字符串或 URL 正則。例如 //domain/list.json/、"/domian/list.json"。
rtype(可選)。
表示需要攔截的 Ajax 請求類型。例如 GET、POST、PUT、DELETE 等。
template(可選)。
表示數(shù)據(jù)模板,可以是對象或字符串。例如 { "data|1-10":[{}] }、"@EMAIL"。
function(options)(可選)。
表示用于生成響應(yīng)數(shù)據(jù)的函數(shù)。
options:指向本次請求的 Ajax 選項集。
數(shù)據(jù)模板中的每個屬性由 3 部分構(gòu)成:屬性名、生成規(guī)則、屬性值:
// 屬性名 name
// 生成規(guī)則 rule
// 屬性值 value
"name|rule": value
屬性名 和 生成規(guī)則 之間用豎線 | 分隔。
生成規(guī)則 是可選的。
生成規(guī)則 有 7 種格式:
"name|min-max": value
"name|count": value
"name|min-max.dmin-dmax": value
"name|min-max.dcount": value
"name|count.dmin-dmax": value
"name|count.dcount": value
"name|+step": value`
生成規(guī)則 的 含義 需要依賴 屬性值的類型 才能確定。
屬性值 中可以含有 @占位符。
屬性值 還指定了最終值的初始值和類型。
舉個栗子:
栗子1:
//string表示屬性名 //3表示后面屬性值重復次數(shù) Mock.mock({ "string|3": "★" })
結(jié)果:
//星星數(shù)量為3 { "string": "★★★" }
栗子2:
// num為屬性名 // 生成一個大于等于1,小于等于100 的整數(shù),屬性值100只是用來確定類型 Mock.mock({ "num|1-100": 100 })
結(jié)果
{ "number": 8 }
其他設(shè)置
// 設(shè)置全局延時 沒有延時的話有時候會檢測不到數(shù)據(jù)變化 建議保留 Mock.setup({ timeout: "300-600" })
// 模擬登錄user/login接口,對應(yīng)的函數(shù)是loginByUsername
Mock.mock(//user/login/, "post", loginByUsername)
當調(diào)用登錄接口user/loign時候會自動對應(yīng)到loginByUsername這個函數(shù)執(zhí)行這個函數(shù),
這個函數(shù)會返回是否登錄成功數(shù)據(jù)。返回成功的數(shù)據(jù),就是登錄成功了,否則相反。
mock模擬登錄ok
接下來介紹模擬表格增刪改查。
其實也是差不多的
// 用戶相關(guān) Mock.mock(//user/listpage/, "get", getUserList) //模擬分頁查詢用戶信息接口 Mock.mock(//user/remove/, "get", deleteUser) //模擬刪除用戶信息接口 Mock.mock(//user/add/, "get", createUser) //模擬添加用戶信息接口 Mock.mock(//user/edit/, "get", updateUser) //模擬編輯用戶信息接口
就是返回條件查詢后的集合假數(shù)據(jù)而已,假數(shù)據(jù)是mock.js模擬的。
先循環(huán)添加60個假用戶
let List = [] const count = 60 for (let i = 0; i < count; i++) { List.push(Mock.mock({ id: Mock.Random.guid(), name: Mock.Random.cname(), addr: Mock.mock("@county(true)"), "age|18-60": 1, birth: Mock.Random.date(), sex: Mock.Random.integer(0, 1) })) }
我們再來看getUserList這個函數(shù),就是返回分頁條件查詢的假數(shù)據(jù)。
getUserList: config => { const { name, page = 1, limit = 20 } = param2Obj(config.url) const mockList = List.filter(user => { if (name && user.name.indexOf(name) === -1) return false return true }) const pageList = mockList.filter((item, index) => index < limit * page && index >= limit * (page - 1)) return { code: 0, data: { total: mockList.length, users: pageList } } }
關(guān)于增加,刪除和修改都只需要返回一個數(shù)據(jù)message="操作成功"即可。
import "./mock" // simulation data 路徑index.js可省略至此整合完畢 源碼地址 Vue學習大佬群493671066,美女多多。老司機快上車,來不及解釋了。 溜了溜了 作者相關(guān)Vue文章
基于Vue2.0實現(xiàn)后臺系統(tǒng)權(quán)限控制
前端文檔匯總
VUE2.0增刪改查附編輯添加model(彈框)組件共用
打賞 衷心的表示感謝文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/96331.html
摘要:本使用創(chuàng)建本地服務(wù)器,在就能完成全部流程,并不需要線上服務(wù)器。路徑要與后端接口一致。后端返回成功后,前端數(shù)據(jù)中對應(yīng)的元素也要刪掉,更新視圖??刂破骼锬靡粋€方法出來說一下吧,完整的代碼都在。讀取操作完成后調(diào)用釋放連接。 寫在前面 本文只是本人學習過程的一個記錄,并不是什么非常嚴謹?shù)慕坛?,希望和大家一起共同進步。也希望大家能指出我的問題。適合有一定基礎(chǔ),志在全棧的前端初學者學習,從點擊按鈕...
閱讀 2725·2021-11-22 13:52
閱讀 1189·2021-10-14 09:43
閱讀 3646·2019-08-30 15:56
閱讀 2956·2019-08-30 13:22
閱讀 3279·2019-08-30 13:10
閱讀 1570·2019-08-26 13:45
閱讀 1105·2019-08-26 11:47
閱讀 2796·2019-08-23 18:13