日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mock.js使用

發布時間:2023/12/4 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mock.js使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、Mock.js入門

1. 什么是mock.js?

Mock.js (官網http://mockjs.com/)是一款模擬數據生成器,旨在幫助前端攻城獅獨立

于后端進行開發,幫助編寫單元測試。提供了以下模擬功能:

1,根據數據模板生成模擬數據

2,模擬 Ajax 請求,生成并返回模擬數據

3,基于 HTML 模板生成模擬數據

Mock.js 具有以下特點:

1.前后端分離,讓前端攻城師獨立于后端進行開發。

2.增加單元測試的真實性

3.通過隨機數據,模擬各種場景。

4.開發無侵入

5.不需要修改既有代碼,就可以攔截 Ajax 請求,返回模擬的響應數據。

6.用法簡單

7.符合直覺的接口

8.數據類型豐富

9.支持生成隨機的文本、數字、布爾值、日期、郵箱、鏈接、圖片、顏色等。

10.方便擴展

11.支持支持擴展更多數據類型,支持自定義函數和正則。

在進行前后端分離式的開發中,前端負責制作頁面和顯示數據,后端負責提供數據,前端通過后端提供的RESTFul規范的接口來獲取 JSON 格式的數據:

對于前端開發人員來說,必須要從服務器獲取數據,所以就只能等待后端開發好接口之后,前端才可以獲取數據,這會影響前端開發的效果。

聰明的前端開發人員就會想:如果前端可以自己模擬出數據,那么在開發時就不需要服務器提供的數據了。于是就出現了mockjs

2. Mock.js安裝

1)使用CDN

2)使用本地文件

下載Mock.js: https://github.com/nuysoft/Mock

導入到本地頁面使用:

引入:

<script src="js/mock-min.js"></script>

3. Mock.js入門案例

3.1. 模擬數據

需求:模擬一個用戶列表,用戶三個字段組件:自增ID、姓名

顯示效果如下:

{"list": [{"id": 1,"name": "測試"},{"id": 1,"name": "測試"},{"id": 1,"name": "測試"},{"id": 1,"name": "測試"},{"id": 1,"name": "測試"}] }

Mock模擬代碼如下:

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Mock入門案例</title><script src="js/vuejs-2.5.16.js"></script><script src="js/axios-0.18.0.js"></script><script src="js/mock-min.js"></script> </head> <body><div id="app1"></div> </body> <script>var data = Mock.mock({//list是一個數組,包含5個元素'list|5':[{'id':1,'name':'測試'}]})// 每一個層級比上一個多2個空格console.log(JSON.stringify(data,null,2 )) </script> </html>

測試結果:

Mock.js模擬數據成功。

3.2. 使用實例

使用axios向模擬數據的服務發送請求,獲取模擬數據在頁面進行展示

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Mock入門案例</title><script src="js/vuejs-2.5.16.js"></script><script src="js/axios-0.18.0.js"></script><script src="js/mock-min.js"></script> </head> <body><div id="app"><ul><li v-for="u in users">id: {{u.id}}name:{{u.name}}</li></ul></div> </body> <script>var data = Mock.mock("/users","get",{//list是一個數組,包含5個元素'list|5':[{'id':1,'name':'測試'}]})const vm = new Vue({el:"#app",data:{users:[]},created:function(){//發送ajax請求axios.get("/users").then((res)=>{this.users = res.data.list;})}}) </script> </html>

瀏覽器顯示效果如圖所示:

二、 Mock.js的語法規范

Mock.js 的語法規范包括兩部分:

1.數據模板定義規范(Data Template Definition,DTD)

2.數據占位符定義規范(Data Placeholder Definition,DPD)

1. 數據模板定義規范

數據模板中的每個屬性由 3 部分構成:屬性名、生成規則、屬性值

// 屬性名 name

// 生成規則 rule

// 屬性值 value
‘name|rule’: value

屬性名 和 生成規則 之間用豎線 | 分隔。

生成規則 是可選的。
生成規則 有 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

屬性值 中可以含有 @占位符。

屬性值 還指定了最終值的初始值和類型
例如:

var data = Mock.mock("/users","get",{//list是一個數組,包含5個元素'list|5':[{'id':1,'name':'測試'}]})

可見: list 是屬性名 中間使用|分隔,數字5是生成規則(表示生成5條數據),后面是json數據。

生成規則的含義需要依賴屬性值的類型才能確定。因此我們需要根據屬性的值類型來學習Mock.js的模板語法規范

1.1. 屬性值是字符串

1)‘name|count’: string**

通過重復 string 生成一個字符串,重復次數等于 count

<!DOCTYPE html> <html lang="en"> <head<meta charset="UTF-8"><title>Mock入門案例</title><script src="js/vuejs-2.5.16.js"></script><script src="js/axios-0.18.0.js"></script><script src="js/mock-min.js"></script> </head> <body> </body> <script>let data = Mock.mock({//重復5次,生成一個具有5個對象的數組'list|5': [{'id': 1,'name':'測試',//重復11次組裝成一個字符串'phone|11':'1'}] }) // 輸出結果 console.log(JSON.stringify(data,null,2)) </script> </html>

//瀏覽器控制臺結果:

{"list": [{"id": 1,"name": "測試","phone": "11111111111"},{"id": 1,"name": "測試","phone": "11111111111"},{"id": 1,"name": "測試","phone": "11111111111"},{"id": 1,"name": "測試","phone": "11111111111"},{"id": 1,"name": "測試","phone": "11111111111"}] }

2)‘name|min-max’: string

通過重復 string 生成一個字符串,重復次數大于等于 min,小于等于 max

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Mock</title><script src="js/vuejs-2.5.16.js"></script><script src="js/axios-0.18.0.js"></script><script src="js/mock-min.js"></script> </head> <body> </body> <script>let data = Mock.mock({'list|5': [{'id': 1,//測試這個詞語 重復隨機次數:最大9次,最小重復2次'name|2-9': '測試','phone|11': '1'}]})// 輸出結果console.log(JSON.stringify(data, null, 2)) </script> </html>

顯示結果:

{"list": [{"id": 1,"name": "測試測試測試測試測試測試測試","phone": "11111111111"},{"id": 1,"name": "測試測試測試測試測試","phone": "11111111111"},{"id": 1,"name": "測試測試測試測試測試","phone": "11111111111"},{"id": 1,"name": "測試測試測試測試測試測試測試","phone": "11111111111"},{"id": 1,"name": "測試測試測試測試測試測試測試測試","phone": "11111111111"}] }

可以發現:name屬性的值有長,有短,說明隨機重復設置成功。

1.2. 屬性值是數字

1)‘name|+1’: number
屬性值自動加 1,初始值為 number

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Mock</title><script src="js/vuejs-2.5.16.js"></script><script src="js/axios-0.18.0.js"></script><script src="js/mock-min.js"></script> </head> <body> </body> <script>let data = Mock.mock({'list|5': [{//屬性值自動加1,后面1是初始值'id|+1': 1,//測試這個詞語 重復隨機次數:最大9次,最小重復2次'name|2-9': '測試','phone|11': '1'}]})// 輸出結果console.log(JSON.stringify(data, null, 2)) </script> </html>

瀏覽器顯示結果:

{"list": [{"id": 1,"name": "測試測試測試測試測試測試測試測試","phone": "11111111111"},{"id": 2,"name": "測試測試測試測試","phone": "11111111111"},{"id": 3,"name": "測試測試","phone": "11111111111"},{"id": 4,"name": "測試測試測試","phone": "11111111111"},{"id": 5,"name": "測試測試測試測試測試測試測試測試測試","phone": "11111111111"}] }

可以發現:此時id的值是自動增長的。每次循環加1.

2)‘name|min-max’: number

生成一個大于等于 min、小于等于 max 的整數,屬性值 number 只是用來確定類型

示例如下:

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Mock</title><script src="js/vuejs-2.5.16.js"></script><script src="js/axios-0.18.0.js"></script><script src="js/mock-min.js"></script> </head> <body> </body> <script>let data = Mock.mock({'list|5': [{//屬性值自動加1,后面1是初始值'id|+1': 1,//測試這個詞語 重復隨機次數:最大9次,最小重復2次'name|2-9': '測試','phone|11': '1',//生成200到1000以內隨機的整數'point|200-1000':0}]})// 輸出結果console.log(JSON.stringify(data, null, 2)) </script> </html>

瀏覽器效果如下所示:

{"list": [{"id": 1,"name": "測試測試測試測試","phone": "11111111111","point": 689},{"id": 2,"name": "測試測試測試測試","phone": "11111111111","point": 519},{"id": 3,"name": "測試測試測試測試測試測試測試","phone": "11111111111","point": 604},{"id": 4,"name": "測試測試測試","phone": "11111111111","point": 797},{"id": 5,"name": "測試測試測試測試","phone": "11111111111","point": 348}] }

3)‘name|min-max.dcount’: value
生成一個浮點數,整數部分大于等于 min、小于等于 max,小數部分為dcount位
示例如下:

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Mock</title><script src="js/vuejs-2.5.16.js"></script><script src="js/axios-0.18.0.js"></script><script src="js/mock-min.js"></script> </head> <body> </body> <script>let data = Mock.mock({'list|5': [{//屬性值自動加1,后面1是初始值'id|+1': 1,//測試這個詞語 重復隨機次數:最大9次,最小重復2次'name|2-9': '測試','phone|11': '1',//生成200到1000以內隨機的整數'point|200-1000':0,//整數部分大于等于3000,小于等于8000,max小數部分保留2位的數據'money|3000-8000.2':0}]})// 輸出結果console.log(JSON.stringify(data, null, 2)) </script> </html>

瀏覽器顯示如下圖所示:

{"list": [{"id": 1,"name": "測試測試測試測試","phone": "11111111111","point": 848,"money": 7080.35},{"id": 2,"name": "測試測試測試測試","phone": "11111111111","point": 530,"money": 4580.34},{"id": 3,"name": "測試測試測試測試測試","phone": "11111111111","point": 486,"money": 6253.33},{"id": 4,"name": "測試測試測試","phone": "11111111111","point": 627,"money": 7222.72},{"id": 5,"name": "測試測試測試測試","phone": "11111111111","point": 285,"money": 7821.81}] }

4)‘name|min-max.dmin-dmax’: number

生成一個浮點數,整數部分大于等于 min、小于等于 max,小數部分保留 dmin 到

dmax 位。

示例如下:

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Mock</title><script src="js/vuejs-2.5.16.js"></script><script src="js/axios-0.18.0.js"></script><script src="js/mock-min.js"></script> </head> <body> </body> <script>let data = Mock.mock({'list|5': [{//屬性值自動加1,后面1是初始值'id|+1': 1,//測試這個詞語 重復隨機次數:最大9次,最小重復2次'name|2-9': '測試','phone|11': '1',//生成200到1000以內隨機的整數'point|200-1000':0,//整數部分大于等于3000,小于等于8000,max小數部分保留2位的數據'money|3000-8000.2':0,//整數部分大于等于3000小于等于8000,小數隨機保留2到4位的小數'money2|1000-2000.2-4':0}]})// 輸出結果console.log(JSON.stringify(data, null, 2)) </script> </html>

瀏覽器控制臺顯示效果如下所示:

{"list": [{"id": 1,"name": "測試測試測試測試測試測試測試測試","phone": "11111111111","point": 694,"money": 3317.13,"money2": 1986.514},{"id": 2,"name": "測試測試測試測試測試測試","phone": "11111111111","point": 770,"money": 3912.08,"money2": 1971.5343},{"id": 3,"name": "測試測試測試","phone": "11111111111","point": 386,"money": 6353.74,"money2": 1036.605},{"id": 4,"name": "測試測試測試測試測試","phone": "11111111111","point": 241,"money": 4918.78,"money2": 1951.792},{"id": 5,"name": "測試測試測試測試測試測試測試","phone": "11111111111","point": 426,"money": 3075.37,"money2": 1828.802}] }

1.3. 屬性是布爾值

1)‘name|1’: Boolean
隨機生成一個布爾值,值為 true 的概率是 1/2,值為 false 的概率同樣是 1/2

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Mock</title><script src="js/vuejs-2.5.16.js"></script><script src="js/axios-0.18.0.js"></script><script src="js/mock-min.js"></script> </head> <body> </body> <script>let data = Mock.mock({'list|5': [{//屬性值自動加1,后面1是初始值'id|+1': 1,//測試這個詞語 重復隨機次數:最大9次,最小重復2次'name|2-9': '測試','phone|11': '1',//生成200到1000以內隨機的整數'point|200-1000':0,//生成整數部分大于等于3000,小于等于8000,max小數部分保留2位的數據'money|3000-8000.2':0,//整數部分大于等于3000小于等于8000,max小數部分隨機保留2到4位的小數'money2|1000-2000.2-4':0,//隨機生成布爾值,默認為ture,為true概率:1/2'status|1':true}]})// 輸出結果console.log(JSON.stringify(data, null, 2)) </script> </html>

2)‘name|min-max’: value
隨機生成一個布爾值,值為 value 的概率是 min / (min + max)

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Mock</title><script src="js/vuejs-2.5.16.js"></script><script src="js/axios-0.18.0.js"></script><script src="js/mock-min.js"></script> </head> <body> </body> <script>let data = Mock.mock({'list|5': [{//屬性值自動加1,后面1是初始值'id|+1': 1,//測試這個詞語 重復隨機次數:最大9次,最小重復2次'name|2-9': '測試','phone|11': '1',//生成200到1000以內隨機的整數'point|200-1000':0,//生成整數部分大于等于3000,小于等于8000,max小數部分保留2位的數據'money|3000-8000.2':0,//整數部分大于等于3000小于等于8000,max小數部分隨機保留2到4位的小數'money2|1000-2000.2-4':0,//隨機生成布爾值,默認為ture,為true概率:1/2'status|1':true,'default|1‐3':true}]})// 輸出結果console.log(JSON.stringify(data, null, 2)) </script> </html>

1.4. 屬性值是Object

1)‘name|count’: object

從屬性值 object 中隨機選取 count 個屬性。

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Mock</title><script src="js/vuejs-2.5.16.js"></script><script src="js/axios-0.18.0.js"></script><script src="js/mock-min.js"></script> </head> <body></body> <script>let data = Mock.mock({'list|5': [{//屬性值自動加1,后面1是初始值'id|+1': 1,//測試這個詞語 重復隨機次數:最大9次,最小重復2次'name|2-9': '測試','phone|11': '1',//生成200到1000以內隨機的整數'point|200-1000':0,//生成整數部分大于等于3000,小于等于8000,max小數部分保留2位的數據'money|3000-8000.2':0,//整數部分大于等于3000小于等于8000,max小數部分隨機保留2到4位的小數'money2|1000-2000.2-4':0,//隨機生成布爾值,默認為ture,為true概率:1/2'status|1':true,'default|1‐3':true,//2的意思是從后面對象中隨機選取2個屬性進行展示'detail|2':{'id':1,'date':'2005‐01‐01','content':'記錄'}}]})// 輸出結果console.log(JSON.stringify(data, null, 2)) </script> </html>

瀏覽器顯示結果:

{"list": [{"id": 1,"name": "測試測試測試測試測試測試測試測試","phone": "11111111111","point": 733,"money": 6534.66,"money2": 1930.35,"status": true,"default‐3": false,"detail": {"content": "記錄","id": 1}},{"id": 2,"name": "測試測試測試測試測試","phone": "11111111111","point": 918,"money": 6777.32,"money2": 1738.8219,"status": true,"default‐3": true,"detail": {"date": "2005‐01‐01","content": "記錄"}},{"id": 3,"name": "測試測試測試測試測試測試","phone": "11111111111","point": 415,"money": 5692.17,"money2": 1140.123,"status": true,"default‐3": true,"detail": {"date": "2005‐01‐01","id": 1}},{"id": 4,"name": "測試測試測試測試測試測試測試測試","phone": "11111111111","point": 495,"money": 5877.03,"money2": 1632.1647,"status": true,"default‐3": true,"detail": {"date": "2005‐01‐01","content": "記錄"}},{"id": 5,"name": "測試測試測試測試測試測試測試測試","phone": "11111111111","point": 229,"money": 6538.04,"money2": 1383.342,"status": true,"default‐3": false,"detail": {"date": "2005‐01‐01","content": "記錄"}}] }

可以發現模擬生成的數據結果:是從對象中隨機選取得幾個數據。
2 )‘name|min-max’: object
從屬性值 object中隨機選取 min到 max個屬性

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Mock</title><script src="js/vuejs-2.5.16.js"></script><script src="js/axios-0.18.0.js"></script><script src="js/mock-min.js"></script> </head> <body> </body> <script>let data = Mock.mock({'list|5': [{//屬性值自動加1,后面1是初始值'id|+1': 1,//測試這個詞語 重復隨機次數:最大9次,最小重復2次'name|2-9': '測試','phone|11': '1',//生成200到1000以內隨機的整數'point|200-1000':0,//生成整數部分大于等于3000,小于等于8000,max小數部分保留2位的數據'money|3000-8000.2':0,//整數部分大于等于3000小于等于8000,max小數部分隨機保留2到4位的小數'money2|1000-2000.2-4':0,//隨機生成布爾值,默認為ture,為true概率:1/2'status|1':true,'default|1‐3':true,//2的意思是從后面對象中隨機選取2到3個屬性進行展示'detail|2-3':{'id':1,'date':'2005‐01‐01','content':'記錄'}}]})// 輸出結果console.log(JSON.stringify(data, null, 2)) </script> </html>

1.5. 屬性值是數組

1)‘name|count’: array
通過重復屬性值 array 生成一個新數組,重復次數為 count

2)‘name|min-max’: array
通過重復屬性值 array 生成一個新數組,重復次數大于等于 min,小于等于 max。

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Mock</title><script src="js/vuejs-2.5.16.js"></script><script src="js/axios-0.18.0.js"></script><script src="js/mock-min.js"></script> </head> <body> </body> <script>let data = Mock.mock({'list|2-6': [{//屬性值自動加1,后面1是初始值'id|+1': 1,//測試這個詞語 重復隨機次數:最大9次,最小重復2次'name|2-9': '測試','phone|11': '1',//生成200到1000以內隨機的整數'point|200-1000':0,//生成整數部分大于等于3000,小于等于8000,max小數部分保留2位的數據'money|3000-8000.2':0,//整數部分大于等于3000小于等于8000,max小數部分隨機保留2到4位的小數'money2|1000-2000.2-4':0,//隨機生成布爾值,默認為ture,為true概率:1/2'status|1':true,'default|1‐3':true,//2的意思是從后面對象中隨機選取2到3個屬性進行展示'detail|2-3':{'id':1,'date':'2005‐01‐01','content':'記錄'}}]})// 輸出結果console.log(JSON.stringify(data, null, 2)) </script> </html>

2. 數據占位符定義規范

Mock.Random 是一個工具類,用于生成各種隨機數據。Mock.Random 的方法在數據模板中稱為『占位符』.

書寫格式為: @占位符(參數 [參數])

內置方法列表:

TypeMethod
基本類型boolean, natural, integer, float, character, string, range, date, time, datetime, now
圖片image, dataImage
顏色color
文本paragraph, sentence, word, title, cparagraph, csentence, cword, ctitle
姓名first, last, name, cfirst, clast, cname
網站url, domain, email, ip, tld
地址area, region
編號guid, id

使用時只需要把值設置成 @方法名【內置列表名】 即可,比如,生成一個隨機的 Email:

2.1. 基本方法

可以生成隨機的基本數據類型

1,string 字符串
2,integer 整數
3,date 日期

示例如下所示:

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Mock</title><script src="js/vuejs-2.5.16.js"></script><script src="js/axios-0.18.0.js"></script><script src="js/mock-min.js"></script> </head> <body> </body> <script>let data = Mock.mock({'list|10': [{'id|+1': 1,//生成隨機字符串作為名稱,string是內置方法'name':'@string',//生成隨機數字'point':'@integer',//隨機日期'birthday':'@date'}]})// 輸出結果console.log(JSON.stringify(data, null, 2)) </script> </html>

瀏覽器運行顯示結果如下所示:

{"list": [{"id": 1,"name": "(mq","point": 5083791101873200,"birthday": "1977-07-13"},{"id": 2,"name": "isp@","point": 6599960830871660,"birthday": "1980-01-10"},{"id": 3,"name": "h5w%z","point": 5930212585321868,"birthday": "1986-02-09"},{"id": 4,"name": "4G!@","point": -2998846183626736,"birthday": "2005-11-15"},{"id": 5,"name": "FxRo","point": 1335300809353096,"birthday": "2007-05-15"},{"id": 6,"name": "sSpX","point": 4263721724318444,"birthday": "2008-07-05"},{"id": 7,"name": "3gyb3y","point": -7937459295974808,"birthday": "2009-07-29"},{"id": 8,"name": "$hHr9","point": -1902814810400284,"birthday": "1985-06-09},{"id": 9,"name": "s)Ib5Y","point": -4044267640262532,"birthday": "1975-12-22"},{"id": 10,"name": "mn0L","point": 5526227040106936,"birthday": "1974-02-03"}] }

可以發現屬性值都是隨機生成的。

2.2. 圖像方法

內置方法image 隨機生成圖片地址

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Mock</title><script src="js/vuejs-2.5.16.js"></script><script src="js/axios-0.18.0.js"></script><script src="js/mock-min.js"></script> </head> <body> </body> <script>let data = Mock.mock({'list|3': [{'id|+1': 1,'name':'@string','point':'@integer','birthday':'@date','img':'@image'}]})// 輸出結果console.log(JSON.stringify(data, null, 2)) </script> </html>

瀏覽器生成結果如下所示:

{"list": [{"id": 1,"name": "^XRWg","point": -4210258101944688,"birthday": "1970-11-13","img": "http://dummyimage.com/180x150"},{"id": 2,"name": "OGptm)z","point": -7325415739657424,"birthday": "1998-01-08","img": "http://dummyimage.com/250x250"},{"id": 3,"name": "nKFRq","point": 6928542938653648,"birthday": "1987-12-21","img": "http://dummyimage.com/250x250"}] }

圖片隨機地址已經生成。

圖片設置的其他用法:
@image()

@image( size )

@image( size, background )

@image( size, background, text )

@image( size, background, foreground, text )

@image( size, background, foreground, format, text )

size:尺寸,格式為:‘寬x高’

background:背景色,格式為:#FFFFFF

text:圖片上顯示的文本

foreground:廣本顏色

format:圖片格式,可選值包括:png、gif、jpg。

@image()

// => “http://dummyimage.com/125x125”

@image(‘200x100’)

// => “http://dummyimage.com/200x100”

@image(‘200x100’, ‘#fb0a2a’)

// => “http://dummyimage.com/200x100/fb0a2a”

@image(‘200x100’, ‘#02adea’, ‘Hello’)

// => “http://dummyimage.com/200x100/02adea&text=Hello”

@image(‘200x100’, ‘#00405d’, ‘#FFF’, ‘Mock.js’)

// => “http://dummyimage.com/200x100/00405d/FFF&text=Mock.js”

@image(‘200x100’, ‘#ffcc33’, ‘#FFF’, ‘png’, ‘!’)

// => “http://dummyimage.com/200x100/ffcc33/FFF.png&text=!”

2.3. 文本方法

@title: 標題

@cword(100) :文本內容 參數為字數
代碼實例如下所示:

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Mock</title><script src="js/vuejs-2.5.16.js"></script><script src="js/axios-0.18.0.js"></script><script src="js/mock-min.js"></script> </head> <body> </body> <script>let data = Mock.mock({'list|3': [{'id|+1': 1,'name':'@string','point':'@integer','birthday':'@date','img':'@image',//隨機標題'title':'@title',//隨機標題內容,字數為20'content':'@cword(20)'}]})// 輸出結果console.log(JSON.stringify(data, null, 2)) </script> </html>

顯示結果:

{"list": [{"id": 1,"name": "eQw!Qks","point": 2809586035596492,"birthday": "1996-12-28","img": "http://dummyimage.com/336x280","title": "Dxmessvmjh Ykcqcqi Nncy Cwbhicpgj Smdmbbk Zwbsjrhww Qohelmygyx""content": "無深性命象院積少時到但共院太理音究維生學"},{"id": 2,"name": "RgS*","point": -1288728653110828,"birthday": "2005-01-12","img": "http://dummyimage.com/720x300","title": "Ussi Yngavtemlr Kryvkh","content": "好道立或易標花天外路位使身稱深作響向之們"},{"id": 3,"name": "e^o","point": 2829338975044496,"birthday": "1999-01-29","img": "http://dummyimage.com/120x600","title": "Woy Gswrz Hwmrxx","content": "產寫總必指農進和專許想式層人位心準適開習"}] }

可以發現:

@title: 生成隨機的英文標題
@cword(字數):生成隨機的中文標題

3)其他的文本方法

l 單個字符:
@character

l 英文單詞

@word
@word(length)
@word(min,max)

l 英文句子
@sentence
@sentence(len)
@sentence(min,max)

l 中文漢字
@cword
@cword(len)
@cword(min,max)

l 中文句子
@csentence
@csentence(len)
@csentence(min,max)

l 中文段落
@cparagraph
@cparagraph(len)
@cparagraph(min,max)

l 中文標題
@ctitle
@ctitle(len)
@ctitle(min,max)

2.4. 名稱方法

1)英文名生成
@first

@last

@name
姓名
@name(middle)
middle:是否生成中間名字
@name()

// => “Larry Wilson”

@name(true) //true表示生成

// => “Helen Carol Martinez”

2)中文名
@cfirst

@clast

@cname
@cname()

// => “袁軍”

如果需要生成中文名稱,需要在前面加上c字母做一標識。
@cname :中文名稱
@cfirst:中文姓氏
@last:英文姓氏

使用實例如下所示:

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Mock</title><script src="js/vuejs-2.5.16.js"></script><script src="js/axios-0.18.0.js"></script><script src="js/mock-min.js"></script> </head> <body> </body> <script>let data = Mock.mock({'list|3': [{'id|+1': 1,//名'name':'@cname','ename':'@last','cfirst':'@cfirst','point':'@integer','birthday':'@date','img':'@image',//隨機標題'title':'@title',//隨機標題內容,字數為20'content':'@cword(20)'}]})// 輸出結果console.log(JSON.stringify(data, null, 2)) </script> </html>

2.5. 網絡方法

可以生成url ip email等網絡相關信息

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Mock</title><script src="js/vuejs-2.5.16.js"></script><script src="js/axios-0.18.0.js"></script><script src="js/mock-min.js"></script> </head> <body> </body> <script>let data = Mock.mock({'list|3': [{'id|+1': 1,//名'name':'@cname','ename':'@last','cfirst':'@cfirst','point':'@integer','birthday':'@date','img':'@image',//隨機標題'title':'@title',//隨機標題內容,字數為20'content':'@cword(20)',//生成地址'url':"@url",//生成ip'ip':"@ip",//生成郵箱'email':"@email"}]})// 輸出結果console.log(JSON.stringify(data, null, 2)) </script> </html>

生成結果如下所示:

{"list": [{"id": 1,"name": "江強","ename": "White","cfirst": "尹","point": 4877914021134976,"birthday": "1971-07-20","img": "http://dummyimage.com/160x600","title": "Zmbq Lqkt Bvmukqilyb Qbtsdrdn Rzjhyqc Fbzw","content": "門層對表產么高習原四王從區照派天即也就布","url": "news://wyqb.pa/fadm","ip": "41.185.151.157","email": "h.dghxxob@ioldag.yu"},{"id": 2,"name": "姚芳","ename": "Miller","cfirst": "鄭","point": 614768891928184,"birthday": "1999-10-27","img": "http://dummyimage.com/120x90","title": "Igaermo Muwcd Oxuy Phrbpiooq Pmccbcx Jqiniwn","content": "斷放活備者組不取平元數又技度研名于何越后","url": "news://segyvpfd.vc/gfpyvz","ip": "133.35.163.143","email": "u.xnes@isksci.tc"},{"id": 3,"name": "文霞","ename": "Williams","cfirst": "龔","point": 1051041620263212,"birthday": "2006-05-30","img": "http://dummyimage.com/125x125","title": "Ybmuoycm Jsvc Obb Jpydendf","content": "外素特不專現工卻因與發屬集身設本究且重傳","url": "nntp://oip.dz/wrqdpd","ip": "238.129.84.64","email": "e.djfbicgdc@kpvlyvhvt.gn"}] }

隨機生成網絡地址,ip地址,郵箱地址:用法如下
//生成地址
‘url’:"@url"
//生成ip
‘ip’:"@ip",
//生成郵箱
‘email’:"@email"

2.6. 地址方法

1)生成中國大區:@region 區域 (華北……)
2)生成省份:@province
3)生成城市:@city @city(prefix)

//prefix:布爾值,是否生成所屬的省

@city()
// => “唐山市”

@city(true)
// => “福建省 漳州市”

4)生成縣:@county @county(prefix)
//prefix:布爾值,是否生成所屬省、市

@county()
// => “上杭縣”

@county(true)
// => “甘肅省 白銀市 會寧縣”

5)生成郵政編碼: @zip

6)生成身份證號 @ID

@ID()
// => “420000200710091854”

7)生成GUID字符串 @guid
@guid()
// => “662C63B4-FD43-66F4-3328-C54E3FF0D56E”

生成實例如下所示:

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Mock</title><script src="js/vuejs-2.5.16.js"></script><script src="js/axios-0.18.0.js"></script><script src="js/mock-min.js"></script> </head> <body> </body> <script>let data = Mock.mock({'list|3': [{'id|+1': 1,//名'name':'@cname','ename':'@last','cfirst':'@cfirst','point':'@integer','birthday':'@date','img':'@image',//隨機標題'title':'@title',//隨機標題內容,字數為20'content':'@cword(20)',//生成地址'url':"@url",//生成ip'ip':"@ip",//生成郵箱'email':"@email",//生成區域'erea':'@region',//生成省,市'city':'@city(true)',//縣'contry':'@county(true)','id':'@ID','zip':'@zip','guid':'@guid'}]})// 輸出結果console.log(JSON.stringify(data, null, 2)) </script> </html>

瀏覽器輸出結果:

{"list": [{"id": 1,"name": "楊軍","ename": "Robinson","cfirst": "盧","point": 7707259653262132,"birthday": "2017-02-08","img": "http://dummyimage.com/336x280","title": "Lhefgmvoo Aocod Wlbql Dsdhwm Mqdaoaa Oknucn Urrcw","content": "到局這方多再律求認辦萬員置特目且戰持十省","url": "cid://vnthestwl.tp/ijdlnclh","ip": "37.75.137.193","email": "y.ddwhfbrgz@fglsuyufkb.mw","erea": "華中","city": "香港特別行政區 九龍","contry": "寧夏回族自治區 固原市 涇源縣","zip": "269948","guid": "8Bc7Cb4A-e114-53de-B815-9db9cD57faA1"},{"id": 2,"name": "何敏","ename": "Taylor","cfirst": "廖","point": 7537535106427220,"birthday": "1973-07-31","img": "http://dummyimage.com/240x400","title": "Ajwmx Nmdfubn Qjolmdslq Cduoktjva","content": "強用回裝近為為術白明養被隊治走鐵話格入他","url": "telnet://cwow.no/rslekzq","ip": "79.188.30.248","email": "h.bwul@lnxenhizew.mp","erea": "華東","city": "陜西省 咸陽市","contry": "西藏自治區 那曲地區 巴青縣","zip": "386548","guid": "87b8a66c-13B7-eCde-f31e-Ae3E91493AE0"},{"id": 3,"name": "葉娜","ename": "Garcia","cfirst": "姚","point": 7922600921770400,"birthday": "1972-04-01","img": "http://dummyimage.com/250x250","title": "Umumjnomv Aualxrhxs Dhbduggch Qcxv Uqjtmoytr","content": "里鐵還角深分非新了時小入層素幾立傳壓按和","url": "telnet://jyft.nz/rypdqqpm","ip": "131.162.164.166","email": "k.iddfzs@xdvm.io","erea": "華東","city": "四川省 宜賓市","contry": "香港特別行政區 九龍 黃大仙區","zip": "497267","guid": "01EBF61D-0Eef-01dd-B971-74aEF67fd53e"}] }

三、 Mock.js案例

1. 需求分析

向Mock.js模擬好的書籍發送請求,展示用戶列表數據。

請求:/user/list

請求方式:get

2. 模擬數據

let data = Mock.mock('/user/list','get',{'list|3': [{'id|+1': 1,//名'name':'@cname','ename':'@last','cfirst':'@cfirst','point':'@integer','birthday':'@date','img':'@image',//隨機標題'title':'@title',//隨機標題內容,字數為20'content':'@cword(20)',//生成地址'url':"@url",//生成ip'ip':"@ip",//生成郵箱'email':"@email",//生成區域'erea':'@region',//生成省,市'city':'@city(true)',//縣'contry':'@county(true)','id':'@ID','zip':'@zip','guid':'@guid'}]})

3. 發送ajax請求

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Mock</title><script src="js/vuejs-2.5.16.js"></script><script src="js/axios-0.18.0.js"></script><script src="js/mock-min.js"></script> </head> <body><div id="app"> <table border="1px;" style="width: 600px;height: 60px;"><tr><td>編號</td><td>姓名</td><td>標題</td><td>地址</td></tr><tr v-for="(u,k) in users"><td>{{k+1}}</td><td>{{u.name}}</td><td>{{u.title}}</td><td>{{u.city}}</td></tr></table></div> </body> <script>let data = Mock.mock('/user/list','get',{'list|3': [{'id|+1': 1,//名'name':'@cname','ename':'@last','cfirst':'@cfirst','point':'@integer','birthday':'@date','img':'@image',//隨機標題'title':'@title',//隨機標題內容,字數為20'content':'@cword(20)',//生成地址'url':"@url",//生成ip'ip':"@ip",//生成郵箱'email':"@email",//生成區域'erea':'@region',//生成省,市'city':'@city(true)',//縣'contry':'@county(true)','id':'@ID','zip':'@zip','guid':'@guid'}]});new Vue({el:'#app',data:{users:[],},created:function(){//發送ajax請求axios.get('/user/list').then((res)=>{this.users = res.data.list;})}}) </script> </html>


---------------------
作者:Armymans
來源:CSDN
原文:https://blog.csdn.net/qq_43652509/article/details/84029619
版權聲明:本文為作者原創文章,轉載請附上博文鏈接!
內容解析By:CSDN,CNBLOG博客文章一鍵轉載插件

總結

以上是生活随笔為你收集整理的mock.js使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。