Mockjs讓模擬數據豐富多彩


Mockjs的兩大必殺技:

1、生成隨機數據

2、攔截 Ajax 請求

 

有了mockjs可以

1、讓前端攻城師獨立於後端進行開發。

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

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

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

 

wiki地址:https://github.com/nuysoft/Mock/wiki

基本上半個小時就可以把官方自帶例子瀏覽一遍了。

 

一、語法規範

1、數據模板

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

// 屬性名   name
// 生成規則 rule
// 屬性值   value
'name|rule': value

 

屬性值是可以是字符串 String、Number、Boolean、Object、Array、Function、RegExp

2、佔位符

佔位符格式:@佔位符

佔位符 只是在屬性值字符串中佔個位置,並不出現在最終的屬性值中。

佔位符 引用的是 Mock.Random 中的方法。

來個最簡單的例子

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <script src="http://mockjs.com/dist/mock.js"></script>
  </head>
  <body>
    <script type="text/javascript">
      // @NAME佔位符  使用的是Random類中隨機名
      console.log(Mock.mock({
        name:'@NAME'
      }));
</script>
  </body>
</html>

​​​​​​​

 

二、mock()函數根據數據模板生成模擬數據

1、Mock.mock( template )

根據數據模板生成模擬數據。

2、Mock.mock( rurl, template )

當攔截到匹配 rurl 的 Ajax 請求時,將根據數據模板 template 生成模擬數據,並作爲響應數據返回。

3、Mock.mock( rurl, function( options ) )

記錄用於生成響應數據的函數。當攔截到匹配 rurl 的 Ajax 請求時,函數 function(options) 將被執行,並把執行結果作爲響應數據返回。

4、Mock.mock( rurl, rtype, template )

記錄數據模板。當攔截到匹配 rurl 和 rtype 的 Ajax 請求時,將根據數據模板 template 生成模擬數據,並作爲響應數據返回。

5、Mock.mock( rurl, rtype, function( options ) )

記錄用於生成響應數據的函數。當攔截到匹配 rurl 和 rtype 的 Ajax 請求時,函數 function(options) 將被執行,並把執行結果作爲響應數據返回。

其中rurl、rtype、template、function(options)均爲可選參數

 

 

三、Mock中最常用的隨機工具類Random 

隨機基本數據類型:

boolean,integer, float, string等

隨機時間日期:

date, time, datetime, now

隨機圖片

img, dataImage(base64編碼)

隨機顏色

color, hex, rgb

隨機文本

word, title,cword, ctitle

隨機名字

first, last, name, cfirst, clast, cname

隨機Web

url, domain, protocol, tld, email, ip

隨機地址

region, province, city

 

來個簡單的helloworld

​​​​​​​

<!DOCTYPE html><html>  <head>    <meta charset="utf-8">    <title></title>    <script src="http://mockjs.com/dist/mock.js"></script>  </head>  <body>    <script type="text/javascript">      // 可以得到隨機的省市區了      console.log(Mock.Random.province(),Mock.Random.city(),Mock.Random.region());</script>  </body></html>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章