Vue 的 mock.js初體驗(yàn)

1.什么是Mock.js?

生成隨機(jī)數(shù)據(jù),攔截 Ajax 請(qǐng)求。

通過隨機(jī)數(shù)據(jù),模擬各種場(chǎng)景;不需要修改既有代碼,就可以攔截 Ajax 請(qǐng)求,返回模擬的響應(yīng)數(shù)據(jù);支持生成隨機(jī)的文本、數(shù)字、布爾值、日期、郵箱、鏈接、圖片、顏色等;支持支持?jǐn)U展更多數(shù)據(jù)類型,支持自定義函數(shù)和正則。

優(yōu)點(diǎn)是非常簡(jiǎn)單方便, 無侵入性, 基本覆蓋常用的接口數(shù)據(jù)類型.

2.安裝

npm install mockjs --save-dev

3.安裝好之后新建一個(gè)mock文件用于引入文件

import?Mock?from?'mockjs'

4.然后在main.js 導(dǎo)入mock文件?

//?引入mock

import?'./mock/index.js'

5.mock語法

? ? ? ? 01 .生成指定次數(shù)的文本?長度字符串??

? ??????????????????const?data?=?Mock.mock?({

? ? ? ? ? ? ? ? ? ? ? ? "string":"hello?world"

? ? ? ? ? ? ? ? ? ? ?})

? ? ? ? 02 生成指定范圍的長度字符串??

? ??????????????????const?data?=?Mock.mock?({

??????????????????????????"string|1-6":"hello?world"? //生成1-6隨機(jī)次數(shù)的 hello?world

????????????????????})

? ??????? 02 生成文本

? ? ? ? ? ? ? ? 生成隨機(jī)的字符串

? ? ? ? ? ? ? ? ? const?data?=?Mock.mock?({

? ? ? ? ? ? ? ? ? ? ? ? ? ? "string":"@cword()"? // 括號(hào)中可以設(shè)置文字的數(shù)量以及文字?jǐn)?shù)量的區(qū)間

? ? ? ? ? ? ? ? ? ? })

? ? ? ? ? 03 生成指定范圍的標(biāo)題和句子

? ??????????????const data = Mock.mock({

? ? ????????????? ?title: "@ctitle(5,8)",

? ? ????????????????sentence: '@csentence(50,100)'

????????????????})

? ? ? ? ? ?04?隨機(jī)生成段落?

? ??????????????const data = Mock.mock({

? ????????????????????? content: '@cparagraph()'

????????????????})

? ? ? ? ? ? 05?生成范圍數(shù)字?

? ??????????????const data = Mock.mock({

? ? ????????????????????"number|1-999": 1

????????????????})

? ? ? ? ? ?06 生成增量id?

? ??????????????const data = Mock.mock({

? ????????????????????? id: '@increment()'

????????????????})

? ? ? ? ? ? 07?隨機(jī)生成姓名-地址-身份證號(hào)

? ??????????????const data = Mock.mock({

? ????????????????? name: '@cname()',

? ? ????????????????idCard: '@id()',

? ? ????????????????address: '@city(true)' // 如果@city(),只會(huì)生成市,如果@city(true)會(huì)生成省和市

????????????????})

? ? ? ? ? ? 08?隨機(jī)生成圖片?生成圖片參數(shù)1:圖片可選大小? 參數(shù)2:圖片背景色 參數(shù)3:圖片前景色

????????????????參數(shù)4:圖片格式? 參數(shù)5:圖片文字

? ?????????????????? const data = Mock.mock({

? ? ????????????????????? image: "@image('300x300', '#50B347', '#FFF', 'Mock.js')"

????????????????????? })

? ? ? ? ? ? ? ?10?生成時(shí)間? ?@Date? ?---? 生成指定格式時(shí)間:@date(yyyy-MM-dd hh:mm:ss

? ??????????????????const time = Mock.mock({

? ????????????????????????? time1: '@date()', // 只有年月日

? ????????????????????????? time2: '@date(yyyy-MM-dd hh:mm:ss)'

????????????????????})

? ? ? ? ? ? ? ? 11.定數(shù)組返回的條數(shù)? --?指定長度:'data|5'? ? ?指定范圍:'data|5-10'

? ??????????????????????const data = Mock.mock({

? ? ? ? ? ? ? ? ? ? ? ? ? ?'list|50-99':[

? ? ? ? ? ? ? ? ? ? ? ? ? ?????{

? ? ? ? ? ????????????????????????????? name: '@cname()',

? ? ? ????????????????????????????? ? ? address: '@city(true)',

? ? ? ? ? ????????????????????????????? id: '@increment(1)' // 每次都增加1

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? ? ? ]

????????????????????????})

mock攔截請(qǐng)求

在項(xiàng)目中安裝axios? ---? npm install axios

在 main.js 文件引入 ------?import axios from 'axios'

在mock文件夾的index.js文件中寫mock語法

定義不攜帶參數(shù)的get請(qǐng)求

Mock.mock('/api/get/user','get',()=>{

? ? return {

? ? ? ? status: 200,

? ? ? ? message: '獲取新聞列表數(shù)據(jù)成功'

? ? }

})

在目標(biāo)組件中

export default {

? created() {

? ? ? ? axios.get('/api/get/user')

? ? ? ? ? .then(function (response) {

? ? ? ? ? console.log(response);

? ? ? })

? ? }

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容