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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

html网页中使用mock,关于Mock.js使用

發布時間:2025/3/15 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html网页中使用mock,关于Mock.js使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目前在做一個個人網站,寫了一半沒有數據填充,也不知道寫啥了,就順帶學習下mockjs這個東西,官網上主要介紹它是一個可以隨機生成各種類型數據,攔截ajax請求等優點。接下來就近距離結束下mockjs吧!

1.安裝

通過npm為自己的項目安裝mockjs。

npm install mockjs

安裝完成后對mockjs進行使用:

const Mock \= require('mockjs')

let data \= Mock.mock({

'list|10': \[{'id|+1': 1}\]

})

先不要管里面的語法,這上面生成的是一個對象數組,里面每個元素是一個對象,每個對象的key是從0-9,value是一個對象,對象中的key是id,value是1-10.

這里只介紹commonjs中的用法,其實用es6的模塊引入方法也可以,但是最終被babel轉義的也是通過require引入的。關于import,require這些區別建議看下這篇文章

2. 語法規范

mockjs的語法規范包括兩部分:

1\. 數據模板定義規范

2\. 數據占位符定義規范

數據模板定義規范

數據模板中的屬性由三個部分組成:屬性名,生成規則,屬性值

// 屬性名 ? name

// 生成規則 rule

// 屬性值 ? value

'name|rule': value

Notice:

1\. 屬性名和生成規則之間用 | 分割。

2\. 生成規則是可選

3\. 生成規則有7種格式:

(1)'name|min-max': value

(2)'name|count': value

(3)'name|min-max.dmin-dmax': value

(4)'name|min-max.dcount': value

(5)'name|count.dmin-dmax': value

(6)'name|count.dcount': value

(7)'name|+step': value

4\. 生成規則的含義需要依賴屬性值得類型才能確定。

5\. 屬性值中可以含有'@占位符'

6\. 屬性值還指定了最終值得初始值和類型。

(1) 屬性值是字符串String

1\. name|min-max: string

通過重復string生成一個字符串,重復次數大于等于min,小于等于max。這里的重復是指對初始化string的重復次數。

?

2\. name|count: string

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

(2) 屬性值是數字Number

1. name|+1 : number

屬性值自動加1, 初始值為number

?

2. name|min\-max: number

生成一個大于等于min,小于等于max的整數。

?

3. name|min\-max.dmin\-dmax: number

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

Mock.mock({

'number1|1-100.1-10': 1,

'number2|123.1-10': 1,

'number3|123.3': 1,

'number4|123.10': 1.123

})

// =>

{

"number1": 12.92,

"number2": 123.51,

"number3": 123.777,

"number4": 123.1231091814

}

(3)屬性值是布爾類型Boolean

1. name|1: boolean

隨機生成一個布爾值,值為true的概率為1/2, 值為false的概率為1/2。

?

2. name|min\-max: value

隨機生成一個布爾值,值為 value 的概率是 min / (min + max),值為 !value 的概率是 max / (min + max)。

(4)屬性值是對象Object

1. name|count: object

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

?

2. name|min\-max: object

從屬性值object中隨機選取min到max個屬性

(5) 屬性值是數組Array

1. name|1: array

從屬性值array中隨機選取一個元素,作為最終值

?

2. name|+1: array

從屬性值array中順序選取一個元素,作為最終值

?

3. name|min\-max: array

通過重復屬性值array生成一個新數組,重復次數大于等于min,小于等于max。

?

4. name|count: array

通過重復屬性值array生成一個新數組,重復次數為count。

(6) 屬性值是函數Function

'name': function

?

執行函數 function,取其返回值作為最終的屬性值,函數的上下文為屬性 'name' 所在的對象。

(7) 屬性值是正則表達式RegExp

1\. name: regexp

根據正則表達式regexp反向生成可以匹配他的字符串。用于生成自定義格式的字符串。

Mock.mock({

'regexp1': /\[a-z\]\[A-Z\]\[0-9\]/,

'regexp2': /\\w\\W\\s\\S\\d\\D/,

'regexp3': /\\d{5,10}/

})

// =>

{

"regexp1": "pJ7",

"regexp2": "F)\\fp1G",

"regexp3": "561659409"

}

數據占位符定義規范DPD

占位符只是在屬性值字符串中占個位置,并不出現在最終的屬性值中。占位符格式:

@占位符

@占位符(參數 \[, 參數\])

Notice:

1\. 用@來標識其后的字符串是占位符。

2\. 占位符引用的是Mock.Random中的方法。

3\. 通過Mock.Random.extend()來擴展自定義占位符。

4\. 占位符也可以引用數據模板中的屬性。

5\. 占位符會有限引用數據模板中的屬性。

6\. 占位符支持相對路徑和絕對路徑。

3. Mock.mock()

Mock.mock(rurl?, rtype?, template|function(options)) 根據數據模板生成模擬數據

Mock.mock(template) 根據數據模板生成模擬數據。

Mock.mock(rurl, template) 記錄數據模板,當攔截到匹配rurl的ajax請求時,根據數據模板生成模擬數據,并作為響應數據返回。

Mock.mock(rurl, function(options)) 記錄用于生成響應數據的函數。當攔截到匹配rurl的ajax請求時,函數function執行,并把執行結果作為響應數據返回。

Mock.mock(rurl, rtype, template) 記錄數據模板,當攔截到匹配rurl和rtype的ajax請求時,將根據數據模板生成模擬數據,并作為響應數據返回。

Mock.mock(rurl, rtype, function(options)) 記錄用于生成響應數據的函數。當攔截到匹配rurl和rtype的ajax請求時,函數function(options)將被執行,并把執行結果作為響應數據返回。

rurl 標識需要攔截的url,可以是url字符串或者url正則:

/\\/domain\\/list\\.json/、'/domian/list.json'。

rtype 可選,標識需要攔截的ajax請求類型。例如GET, POST, PUT, DELETE等。

template 可選,標識數據模板,可以是對象或字符串。

function(options) 可選,表示用于生成響應數據的函數。

options 指向本次請求的ajax選項集,含有url, type和body三個屬性。

4. Mock.setup()

Mock.setup(setting) 配置攔截ajax請求時的行為。支持的配置項有:timeout。

setting 必選,配置項集合

timeout 可選,執行攔截的ajax請求的響應時間,單位是毫秒,值可以是正整數。例如400標識400ms后才會返回響應的內容;也可以是200-600這樣表示響應時間介于200和600毫秒之間,默認是10-100.

Mock.setup({

timeout: 400

})

Mock.setup({

timeout: '200-600'

})

目前,接口 Mock.setup( settings ) 僅用于配置 Ajax 請求,將來可能用于配置 Mock 的其他行為。

5. Mock.Random

Mock.Random是一個工具類,用于生成各種隨機數據。 Mock.Random的方法在在數據模板中稱為占位符,書寫格式為'@占位符(參數,[,參數])'

var Random = Mock.Random

Random.email()

// => "n.clark@miller.io"

Mock.mock('@email')

// => "y.lee@lewis.org"

Mock.mock( { email: '@email' } )

// => { email: "v.lewis@hall.gov" }

擴展 Mock.Random中的方法與數據模板的‘@占位符’一一對應,在需要時還可以為Mock.Random擴展方法,然后在數據模板中通過'@擴展方法'引用:

Random.extend({

constellation: function(date) {

var constellations = \['白羊座', '金牛座', '雙子座', '巨蟹座', '獅子座', '處女座', '天秤座', '天蝎座', '射手座', '摩羯座', '水瓶座', '雙魚座'\]

return this.pick(constellations)

}

})

Random.constellation()

// => "水瓶座"

Mock.mock('@CONSTELLATION')

// => "天蝎座"

Mock.mock({

constellation: '@CONSTELLATION'

})

// => { constellation: "射手座"

還有一些其他的生成隨機數據的方法,大家可以直接去官網看下,這里就不一一的描述了。地址:https://github.com/nuysoft/Mo...

6. Mock.valid()

Mock.valid(template, data) 校驗真實數據data是否與數據模板template匹配。

template 必選,表示數據模板,可以是對象或者字符串“{ 'list|1-10':[{}] }、'@EMAIL'”

data 必選,表示真實數據。

var template = {

name: 'value1'

}

var data = {

name: 'value2'

}

Mock.valid(template, data)

// =>

\[

{

"path": \[

"data",

"name"

\],

"type": "value",

"actual": "value2",

"expected": "value1",

"action": "equal to",

"message": "\[VALUE\] Expect ROOT.name'value is equal to value1, but is value2"

}

\]

7. Mock.toJSONSchema()

Mock.toJSONSchema( template ) 把Mock.js風格的數據模板template轉換成JSON Schema

template 必選,表示數據模板,可以是對象或者字符串。

關于mock.js的介紹也這么多,這些基本上是根據官文摘抄,但是基本上夠我們日常使用。

關于找一找教程網

本站文章僅代表作者觀點,不代表本站立場,所有文章非營利性免費分享。

本站提供了軟件編程、網站開發技術、服務器運維、人工智能等等IT技術文章,希望廣大程序員努力學習,讓我們用科技改變世界。

[關于Mock.js使用]http://www.zyiz.net/tech/detail-119093.html

總結

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

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