vue項(xiàng)目中如何使用mock你知道嗎
Mock.js 是一款模擬數(shù)據(jù)生成器,旨在幫助前端攻城師獨(dú)立于后端進(jìn)行開發(fā),幫助編寫單元測(cè)試。提供了以下模擬功能:
- 根據(jù)數(shù)據(jù)模板生成模擬數(shù)據(jù)
- 模擬 Ajax 請(qǐng)求,生成并返回模擬數(shù)據(jù)
- 基于 HTML 模板生成模擬數(shù)據(jù)
第一步:
npm install mockjs // 安裝mockjs
npm install axios
第二步,在request.js中進(jìn)行相關(guān)配置,request.js代碼如下:
import axios from 'axios'
// axios.defaults.headers.post['Content-Type'] = 'application/x-www-urlencoded'
const http = axios.create()
http.defaults.timeout = 3000
http.interceptors.request.use(config => { // 請(qǐng)求攔截器配置 // 可不配置
// do sth
return config
}, error => {
console.log(error)
return Promise.reject(error)
})
http.interceptors.response.use(response => { // 響應(yīng)攔截器配置 // 可不配置
// do something
return response
}, error => {
console.log(error)
return Promise.reject(error)
})
export function fetch(url, params) { // 封裝axios的post請(qǐng)求
return new Promise((resolve, reject) => { // promise 用法,自行查閱
axios.post(url, params).then(response => {
resolve(response.data) // promise相關(guān)
}).catch(error => {
reject(error) // promise相關(guān)
})
})
}
export default { // 暴露htto_mock方法,即后面頁(yè)面中用到的方法
http_mock(url, params) {
return fetch(url, params)
}
}
第三步,在mock.js中進(jìn)行相關(guān)配置,mock.js代碼如下:
import Mock from 'mockjs'
const Random = Mock.Random
var listData = function() {
let _data = {
status: 200,
message: 'success',
data: {
total: 100,
'rows|10': [{
id: '@guid',
name: '@cname',
'age|20-30': 23,
'job|1': ['前端工程師', '后端工程師', 'UI工程師', '需求工程師']
}]
}
}
return { _data }
}
// url為要攔截的請(qǐng)求地址 請(qǐng)求方式 請(qǐng)求數(shù)據(jù)(規(guī)則) (此處api會(huì)被mockjs攔截)
Mock.mock('http://route.showapi.com/60-27', 'post', listData())

第四步,在main.js中需引入mock.js即可
import mock from '@/http/mock'
第五步,在頁(yè)面中使用
import request from '@/http/request'
export default {
name: "FirstPage",
created() {
this.getData()
},
methods: {
getData() {
// 假裝要使用http_mock發(fā)送請(qǐng)求(mock自動(dòng)攔截請(qǐng)求并生成數(shù)據(jù))
// 此處第一個(gè)參數(shù)需要和Mock.mock()中的第一個(gè)參數(shù)一致
console.log('請(qǐng)求開始')
request.http_mock('http://route.showapi.com/60-27','api_id=63114&api_sign=3847b0').then(response => {
console.log(response._data)
})
},
}
}
效果如下:

總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Vue openLayers實(shí)現(xiàn)圖層數(shù)據(jù)切換與加載流程詳解
OpenLayers是一個(gè)用于開發(fā)WebGIS客戶端的JavaScript包,最初基于BSD許可發(fā)行。OpenLayers是一個(gè)開源的項(xiàng)目,其設(shè)計(jì)之意是為互聯(lián)網(wǎng)客戶端提供強(qiáng)大的地圖展示功能,包括地圖數(shù)據(jù)顯示與相關(guān)操作,并具有靈活的擴(kuò)展機(jī)制2022-09-09
Vue el-table 默認(rèn)展開某一行的實(shí)例
這篇文章主要介紹了Vue el-table 默認(rèn)展開某一行的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
vue如何在vue.config.js文件中導(dǎo)入模塊
這篇文章主要介紹了vue如何在vue.config.js文件中導(dǎo)入模塊問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
使用vue打包時(shí)vendor文件過(guò)大或者是app.js文件很大的問(wèn)題
這篇文章主要介紹了使用vue打包時(shí)vendor文件過(guò)大或者是app.js文件很大問(wèn)題的解決方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-06-06
vue項(xiàng)目完成后如何實(shí)現(xiàn)項(xiàng)目?jī)?yōu)化的示例
本文主要介紹了vue項(xiàng)目完成后如何實(shí)現(xiàn)項(xiàng)目?jī)?yōu)化的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
vue實(shí)現(xiàn)旋轉(zhuǎn)木馬動(dòng)畫
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)旋轉(zhuǎn)木馬動(dòng)畫,圖片數(shù)量無(wú)限制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07
解決使用Vue.js顯示數(shù)據(jù)的時(shí),頁(yè)面閃現(xiàn)原始代碼的問(wèn)題
下面小編就為大家分享一篇解決使用Vue.js顯示數(shù)據(jù)的時(shí),頁(yè)面閃現(xiàn)原始代碼的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02
vue.js實(shí)現(xiàn)簡(jiǎn)單輪播圖效果
這篇文章主要為大家詳細(xì)介紹了vue.js實(shí)現(xiàn)簡(jiǎn)單輪播圖效果的相關(guān)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10

