国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - js教程 - 玩轉 Mockjs,前端也能跑得很溜

玩轉 Mockjs,前端也能跑得很溜

2022-01-05 23:24前端人 js教程

mockjs作用就是,生成隨機模擬數(shù)據(jù),攔截 ajax 請求,可以對數(shù)據(jù)進行增刪改查。在生成數(shù)據(jù)時,我們就需要能夠熟練使用 mock.js 的語法。

玩轉 Mockjs,前端也能跑得很溜

mockjs作用就是,生成隨機模擬數(shù)據(jù),攔截 ajax 請求,可以對數(shù)據(jù)進行增刪改查。在生成數(shù)據(jù)時,我們就需要能夠熟練使用 mock.js 的語法。

Mockjs 的語法規(guī)范包括兩部分:數(shù)據(jù)模板定義規(guī)范和數(shù)據(jù)占位符定義規(guī)范。

一、數(shù)據(jù)模板定義規(guī)范

數(shù)據(jù)模板中的每個屬性組成有:屬性名、生成規(guī)則、屬性值。

使用語法為:

  1. "name|rule": value 

值得注意的有:

  • 屬性名和生成規(guī)則之間使用 | 分割。
  • 生成規(guī)則是可選參數(shù)。
  • 生成規(guī)則有 7 種形式。
  • 生成規(guī)則含義需要依賴于屬性值的類型。
  • 屬性值可以指定初始值和類型。

生成規(guī)則的格式分別有:

1.1、屬性值是類型 String

變量的重復次數(shù)是一個隨機值。

  1. 'name|min-max':string 
  2. 通過生成一個 string 重復 min 到 max 之間的一個字符串。。 
  3.  
  4. //使用 
  5. 'name|1-3':'a' 
  6. 運行結果:生成一個 a 的個數(shù)為 1-3 之間的字符串變量。可能的結果有:a、aa 、aaa 

直接指定重復次數(shù)。

  1. 'name|count':string 
  2. 通過生成一個 string 重復 count 次的一個字符串。。 
  3.  
  4. //使用 
  5. 'name|3':'a' 
  6. 運行結果:aaa 

1.2、屬性值是 Number

生成不斷累加的數(shù)字。

  1. 'name|+1':num 
  2. 初始值為 num ,生成的屬性值自動加 1 

生成一個區(qū)間數(shù)值。

  1. 'name|min-max':num 
  2. 生成一個 min 到 max 之間的數(shù)值,num 用來指定類型 
  3.  
  4. //使用 
  5. 'name|1-3': 1 
  6. 運行結果:生成一個 1-3 之間的數(shù)字??赡艿慕Y果有:1、2、3 

生成帶有小數(shù)點的數(shù)字。

  1. 'name|min-max.dmin-dmax': num 
  2. 生成一個浮點數(shù),整數(shù)部分介于 min 和 max 之間,小數(shù)保留 dmin 到 dmax 位。num 用來指定類型。 
  3.  
  4. //使用 
  5. 'num1|1-10.1-2': 1 
  6. 運行結果:生成 1-10 之間的帶有 1到 2 位小數(shù)的浮點數(shù)。如:2.1、3.12 等 
  7.  
  8. 'num2|5.1-2': 1 
  9. 生成一個整數(shù)部分為 5 ,保留 1 到 2 位小數(shù)的浮點數(shù)。如:5.1、5.33、5.09 等 
  10.  
  11. 'num3|5.2': 1 
  12. 生成整數(shù)為 5 ,保留兩位小數(shù)的浮點數(shù)。如:5.11、5.67 等 

1.3、屬性值是 Boolean

  1. 'name|1': boolean 
  2. 生成一個隨機值,真 假 概率都是一半。 
  3.  
  4. //使用 
  5. 'isLike|1'true 
  6. 生成 isLike 的值可能為 true 、false。概率是一樣的。 
  1. 'name|min-max': value 
  2. 隨機生成一個布爾值, 
  3. 值為 value 的概率是 min / (min + max), 
  4. 值為 !value 的概率是 max / (min + max)。 
  5.  
  6. //使用 
  7. 'like|1-5'true 
  8. 生成 true 的 概率為 1/6 。生成 false 的概率為 5/6 

1.4、屬性值是對象 Object

生成一個指定屬性個數(shù)的對象。

  1. 'obj|num': object 
  2. 從屬性值 object 中,隨機選取 num 個屬性。 
  3.  
  4. //使用 
  5. 'obj|2': { 
  6.              a: '1'
  7.              b: '2'
  8.              c: '3' 
  9.             } 
  10. 運行結果可能為: 
  11. {a: "3", b: "2"
  12. {c: "3", b: "2"
  13. {a: "3", c: "2"

生成一個屬性個數(shù)隨機的對象。

  1. 'obj|min-max': object 
  2. 從 object 中 隨機選取 min 到 max 個屬性,生成一個對象。 
  3.  
  4. //使用 
  5. 'obj|1-2': { 
  6.              a: '1'
  7.              b: '2'
  8.              c: '3' 
  9.             } 
  10. 運行結果可能為: 
  11. {a: "3"
  12. {b: "3"
  13. {c: "3"
  14. {a: "3", b: "2"
  15. {c: "3", b: "2"
  16. {a: "3", c: "2"

1.5、屬性值是數(shù)組 Array

取數(shù)組中某個元素作為結果。

  1. 'arr|1':array 
  2. 從屬性值 array 中隨機選取 1 個元素作為結果返回 
  3.  
  4. //使用 
  5. 'arr|1':[1,2,3] 
  6. 運行結果為:1、2、3 三種結果 

生成新數(shù)組。

  1. 'arr|min-max': array 
  2. 通過重復 array 的元素生成新數(shù)組,重復次數(shù) min 到 max 。 
  3.  
  4. //使用 
  5. 'arr|1-2': [ 1,2,3 ] 
  6. 運行結果為:[ 1,2,3 ] 或 [ 1,2,3,1,2,3 ] 
  1. 'arr|num': array 
  2. 通過重復 array 的元素生成新數(shù)組,重復次數(shù) num 次 。 
  3.  
  4. //使用 
  5. 'arr|2': [ 1,2,3 ] 
  6. 運行結果為: [ 1,2,3,1,2,3 ] 

1.6、屬性值是函數(shù) Function

  1. 'name':function 
  2. function 返回值作為最終的屬性值。 
  3.  
  4. //使用 
  5. 'name': ()=>{ 
  6.  return 'web learn' 
  7. 運行結果為 web learn 

在數(shù)據(jù)占位符中,屬性值是函數(shù)有重要的意義。待會會重點解釋。

1.7、屬性值是正則 RegExp

  1. 'name': regexp 
  2. 根據(jù)正則表達式 regexp 反向生成可以匹配的字符串。用于生成自定義格式的字符串 
  3.  
  4. //使用 
  5. 'reg': /[a-zA-Z0-9]2/ 
  6. 生成大小寫字母和數(shù)字任意組成的長度為 2 的字符串 
  7.  
  8. 'reg':/\d{5,10}/ 
  9. 生成任意的 5 到 10 位的數(shù)字字符串 

二、數(shù)據(jù)占位符定義規(guī)范

數(shù)據(jù)占位符只是在屬性字符串中占個位置,并不會出現(xiàn)在最終的屬性值中。

使用格式:

  1. @占位符 
  2. @占位符(參數(shù) [, 參數(shù)]) 
  3.  
  4. //使用 
  5. 'name'"@name"
  6.  生成英文名,如:Edward Rodriguez 
  7.  
  8. //帶有參數(shù) 
  9. 'first':"@name(middle)"
  10. 生成帶有中間名的英文名 。如:Ruth Paul Robinson 
  11.  
  12. 'name'"@cname"
  13.  生成中文名 

注意:

  • 用 @ 來標識后邊的字符串是標識符。
  • 占位符引用的都是 mock.Random 中的方法。
  • 如果需要擴展自定義占位符,可使用 Mock.Random.extend()。
  • 占位符也可以引用 “數(shù)據(jù)模板” 中的內(nèi)容。
  • 占位符優(yōu)先引用數(shù)據(jù)模板中的屬性。
  • 支持相對和絕對路徑。
  1. Mock.mock('@string("number", 5)'
  2. 生成一個五位數(shù)的字符串 
  3.  
  4. Mock.mock('@color'
  5. 生成隨機的顏色 
  6. //等同于 
  7. Random.color() 

三、使用舉例

創(chuàng)建一個 api 接口,返回一個隨機生成的數(shù)組:

  1. export default [ 
  2.  { 
  3.   url: "/api/list"
  4.   method: "post"
  5.   response: ({ url, body }) => { 
  6.    // body 是post方法時傳入的數(shù)據(jù) 
  7.    // url 是請求接口,get方法時,也包含傳遞的參數(shù) 
  8.    return { 
  9.     code: 200, 
  10.     message: "ok"
  11.     //生成一個數(shù)組 
  12.     // 長度介于 10 到 20 之間 
  13.     'list|10-20': [{ 
  14.      name:'@cname' //生成中文名 
  15.     }] 
  16.    }; 
  17.   } 
  18.  } 

占位符引用的都是 Mock.random 內(nèi)的方法,所以我們可以把上述代碼更改為:

  1. 'list|10-20': [{ 
  2.  name:Random.cname() //生成中文名 
  3. }] 

此時我們再查閱的時候,就發(fā)現(xiàn)生成的數(shù)組內(nèi),名字都是一模一樣的。如果我們想生成不一樣的姓名,該如何解決呢?

解決辦法:把屬性值更改為函數(shù),將函數(shù)的返回值作為最終結果。

  1. 'list|10-20': [{ 
  2.  name:()=>{ 
  3.   Random.cname() 
  4.  }  
  5. }] 

原文鏈接:https://www.toutiao.com/a7038875111243465227/

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品高清在线 | 日日噜 | 免费午夜视频 | 成人在线视频网站 | 亚洲精品在线成人 | 中文字幕色站 | 91久久极品 | 视频在线一区二区 | 久久久久久久久99精品 | 特黄色一级片 | 亚洲天堂第一页 | 一区二区三区在线看 | 成人三级视频网站 | 久久午夜精品 | 国产免费天天看高清影视在线 | 午夜三区 | 99热这里有精品 | 中文字幕亚洲欧美 | 懂色中文一区二区在线播放 | 国产51人人成人人人人爽色哟哟 | 成人黄色片网站 | 91亚洲国产精品 | 在线观看视频91 | 日韩av手机版 | 久久精品亚洲精品国产欧美kt∨ | 午夜视频在线观看视频 | 国产亚洲一区二区三区在线观看 | 国产欧美日韩 | av男人的天堂在线 | 日韩免费高清视频 | 久久国产一区二区 | 999久久久国产999久久久 | 欧美黄页 | 一级特色黄大片 | 黄色免费在线观看网址 | av大片 | 伊人av成人 | 日本高清视频在线 | 久久久精品黄色 | 日韩在线精品 | 亚洲国产欧美日韩 |