uin-app+mockjs實(shí)現(xiàn)本地?cái)?shù)據(jù)模擬
最近在開發(fā)項(xiàng)目的時(shí)候,需要用到mockjs這個(gè)包來(lái)實(shí)現(xiàn)前端本地?cái)?shù)據(jù)的模擬,下面我就來(lái)說(shuō)一下具體步驟:
前言
uni-app將自己的配置融合到了vue.config.js中,所以需要自己配置,需要在package.json的同級(jí)目錄下新建一個(gè)vue.config.js;ajax請(qǐng)求的路由,因?yàn)檫@個(gè)路由我們希望拿到模擬數(shù)據(jù),所以用webpack的devserve來(lái)攔截。攔截之后通過mockjs,由它來(lái)生成模擬數(shù)據(jù),然后返回模擬值。
步驟
在vue.config.js中加入下面代碼:
const Mock = require('./mock/index.js'); module.exports = { chainWebpack: (config) => { config.resolve.alias .set( '@',resolve(__dirname, '/'))//設(shè)置@為src目錄的別名) }, css: { .... } }, devServer: { contentBase: path.join(__dirname, 'mock'), compress: true, port: 8080, overlay: { warnings: false, errors: true }, before(app){ Mock(app) } } };
devserver的配置中的before配置項(xiàng)是攔截路由請(qǐng)求。我們把全部交給Mock(app)處理;然后打開mock/index.js寫入如下代碼:
const addressesMock = require('./addresses'); const attendanceMock = require('./attendance'); const attendanceListMock = require('./attendance-list'); .... function Mock(app) { addressesMock(app) attendanceMock(app) attendanceListMock(app) ..... } module.exports = Mock;
打開addresses寫入你需要mock的數(shù)據(jù)就ok啦
var Mockjs = require('mockjs') const { Random }= Mockjs; const phonePrefix = ['132', '135', '189'] const index = Math.floor(Math.random() * phonePrefix.length) var phone = phonePrefix[index] + Mockjs.mock(/\d{8}/) const addressesMock = function (app) { app.get('/api3/addresses', function(req, res) { var data = Mockjs.mock({ // 屬性 list 的值是一個(gè)數(shù)組,其中元素的數(shù)量從 1 到 10 個(gè)都有可能,隨機(jī) 'list|1-10': [{ 'id|+1': 0, "accept_name": Random.cname(), "mobile": phone, "province_name": Random.province(), "area": Mockjs.mock(/\d{6}/), "city": Mockjs.mock(/\d{6}/), "sex": parseInt(Random.boolean()), "district": { "districts": Random.province()+Random.city()+Random.county(), "area": Random.county(), "city": Random.city(), "province": Random.province() }, "street": "有一間公寓八棟", "inner": false, "lat": "", "door_number": "AB1234", "is_default": parseInt(Random.boolean()), "province": Mockjs.mock(/\d{6}/), "area_name":Random.county(), "city_name": Random.city(), "poiname": "" }] }) res.json(data); }) } module.exports = addressesMock;
在需要接口的地方之間用 就能得到相應(yīng)數(shù)據(jù)了
this.$ajax.get('/api3/addresses').then(res => { // 調(diào)用接口 })
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript插入動(dòng)態(tài)樣式實(shí)現(xiàn)代碼
能夠把CSS樣式包含到HTML頁(yè)面中的元素有兩個(gè)。其中,<link>元素用于包含來(lái)自外部的文件,而<style>元素用于指定嵌入的樣式2012-02-02原生JS實(shí)現(xiàn)的自動(dòng)輪播圖功能詳解
這篇文章主要介紹了原生JS實(shí)現(xiàn)的自動(dòng)輪播圖功能,結(jié)合實(shí)例形式詳細(xì)分析了基于原生js實(shí)現(xiàn)輪播圖的原理、操作步驟及操作注意事項(xiàng),需要的朋友可以參考下2018-12-12Javascript立即執(zhí)行函數(shù)(IIFE)實(shí)例詳解
IIFE全拼Imdiately?Invoked?Function?Expression,是一個(gè)在定義的時(shí)候就立即執(zhí)行的JavaScript函數(shù),這篇文章主要給大家介紹了關(guān)于Javascript立即執(zhí)行函數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04javascrit中undefined和null的區(qū)別詳解
這篇文章主要介紹了javascrit中undefined和null的區(qū)別詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2019-04-04js鼠標(biāo)點(diǎn)擊圖片切換效果實(shí)現(xiàn)代碼
這篇文章為大家分享了js鼠標(biāo)點(diǎn)擊圖片切換效果實(shí)現(xiàn)代碼,特別炫酷的效果,具有一定的參考價(jià)值,推薦給大家,感興趣的小伙伴們可以參考一下2015-11-11IE6下通過a標(biāo)簽點(diǎn)擊切換圖片的問題
IE6已經(jīng)讓人惡心很久了, Google旗下Youtube決定在3月13日起停止對(duì)IE6的支持. 但愿能加速IE6更換的速度.2010-11-11js 模擬實(shí)現(xiàn)類似c#下的hashtable的簡(jiǎn)單功能代碼
越來(lái)越感覺js對(duì)集合的處理沒有c#強(qiáng)大。比如在實(shí)際開發(fā)中,經(jīng)常用到在一維數(shù)組或者二維數(shù)組里取某一個(gè)滿足某些條件的項(xiàng),通常的處理方式就是遍歷數(shù)組,對(duì)比條件,匹配就取出,然后結(jié)束循環(huán)。2010-01-01