vue-cli 本地開(kāi)發(fā)mock數(shù)據(jù)使用方法

vue-cli 中可以通過(guò)配置 proxyTable 解決開(kāi)發(fā)環(huán)境的跨域問(wèn)題托享,具體可以參考這篇文章:
Vue-cli proxyTable 解決開(kāi)發(fā)環(huán)境的跨域問(wèn)題

如果后端接口尚未開(kāi)發(fā)完成皂林,前端開(kāi)發(fā)一般使用mock數(shù)據(jù)。
mock方法有多種多樣细移,這里給出兩種:

方法一: 使用express搭建靜態(tài)服務(wù)

mock數(shù)據(jù)寫(xiě)在json文件中澈吨,proxyTable 里將接口代理到具體mock數(shù)據(jù)json文件上宛蚓。
具體方法:

  • 創(chuàng)建 mock 文件夾
  • build/dev-server.js 中添加如下代碼

npm run dev 啟動(dòng)后斜姥,可以通過(guò) http://localhost:8080/mock/db.json 訪問(wèn)數(shù)據(jù),proxyTable對(duì)應(yīng)設(shè)置代理即可(代理設(shè)置方法與解決跨域方法相似)

方法二 使用 JSON Server 搭建 Mock 服務(wù)器

JSON Server 是一個(gè)創(chuàng)建偽RESTful服務(wù)器的工具武花,具體使用方法可以看官方文檔圆凰,這里直接講在vue-cli 中的用法。

配置流程

  • 全局安裝 $ npm install -g json-server
  • 項(xiàng)目目錄下創(chuàng)建 mock 文件夾
  • mock 文件夾下添加 db.json 文件体箕,內(nèi)容如下
{
  "posts": [
    { "id": 1, "title": "json-server", "author": "typicode" }
  ],
  "comments": [
    { "id": 1, "body": "some comment", "postId": 1 }
  ],
  "profile": { "name": "typicode" }
}
  • package.json 添加命令
"mock": "json-server --watch mock/db.json",
    "mockdev": "npm run mock & npm run dev"

啟動(dòng) mock 服務(wù)器

$ npm run mock 命令 運(yùn)行 mock server
訪問(wèn) http://localhost:3000/
發(fā)現(xiàn) db.json 下第一級(jí) json 對(duì)象被解析成為可訪問(wèn)路徑

GET請(qǐng)求具體路徑 如:http://localhost:3000/posts 可獲取數(shù)據(jù)

faker.js 批量生成偽數(shù)據(jù)

如果需要大量的偽數(shù)據(jù)专钉,手動(dòng)構(gòu)造比較費(fèi)時(shí)費(fèi)力挑童,可以使用 faker.js 批量生成。faker.js 的具體使用參見(jiàn)官方文檔跃须,這里做一個(gè)示例站叼。

  • $ cnpm install faker -G 全局安裝 faker
  • mock 目錄下創(chuàng)建 faker-data.js,內(nèi)容如下
module.exports = function () {
    var faker = require("faker");
    faker.locale = "zh_CN";
    var _ = require("lodash");
    return {
        people: _.times(100, function (n) {
            return {
                id: n,
                name: faker.name.findName(),
                avatar: faker.internet.avatar()
            }
        }),
        address: _.times(100, function (n) {
            return {
                id: faker.random.uuid(),
                city: faker.address.city(),
                county: faker.address.county()
            }
        })
    }
}
  • $ json-server mock/faker-data.js 在 json server 中使用 faker
    請(qǐng)求 http://localhost:3000/address 可以獲取到隨機(jī)生成的100組偽數(shù)據(jù)

添加中間件

json server 使用 RESTful 架構(gòu)菇民,GET請(qǐng)求可以獲取數(shù)據(jù)尽楔,POST 請(qǐng)求則是添加數(shù)據(jù)。
在開(kāi)發(fā)過(guò)程中第练,有時(shí)候想直接模擬獲取POST請(qǐng)求返回結(jié)果阔馋,可以添加 express 中間件 將POST請(qǐng)求轉(zhuǎn)為GET請(qǐng)求。

  • mock 目錄下創(chuàng)建 post-to-get.js娇掏,內(nèi)容如下
module.exports = function (req, res, next) {
  req.method = "GET";
  next();
}
  • 啟動(dòng)命令添加運(yùn)行中間件 --m mock/post-to-get.js
"mock": "json-server --watch mock/db.json --m mock/post-to-get.js",

重新啟動(dòng)服務(wù)呕寝,POST請(qǐng)求就被轉(zhuǎn)換為GET請(qǐng)求了

其他需求也可以通過(guò)添加不同的中間件實(shí)現(xiàn)。

代理設(shè)置

config/index.jsproxyTable 將請(qǐng)求映射到 http://localhost:3000

代碼中添加請(qǐng)求以測(cè)試效果

$ npm run mockdev 啟動(dòng)帶mock 數(shù)據(jù)的本地服務(wù)

結(jié)果如下:


整體代碼:https://github.com/carrotz/vue-cli-mock

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末驹碍,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子凡恍,更是在濱河造成了極大的恐慌志秃,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嚼酝,死亡現(xiàn)場(chǎng)離奇詭異浮还,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)闽巩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)钧舌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人涎跨,你說(shuō)我怎么就攤上這事洼冻。” “怎么了隅很?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵撞牢,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我叔营,道長(zhǎng)屋彪,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任绒尊,我火速辦了婚禮畜挥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘婴谱。我一直安慰自己蟹但,他們只是感情好躯泰,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著矮湘,像睡著了一般斟冕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上缅阳,一...
    開(kāi)封第一講書(shū)人閱讀 51,146評(píng)論 1 297
  • 那天磕蛇,我揣著相機(jī)與錄音,去河邊找鬼十办。 笑死秀撇,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的向族。 我是一名探鬼主播呵燕,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼件相!你這毒婦竟也來(lái)了再扭?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤夜矗,失蹤者是張志新(化名)和其女友劉穎泛范,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體紊撕,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡罢荡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了对扶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片区赵。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖浪南,靈堂內(nèi)的尸體忽然破棺而出笼才,到底是詐尸還是另有隱情,我是刑警寧澤络凿,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布患整,位于F島的核電站,受9級(jí)特大地震影響喷众,放射性物質(zhì)發(fā)生泄漏各谚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一到千、第九天 我趴在偏房一處隱蔽的房頂上張望昌渤。 院中可真熱鬧,春花似錦憔四、人聲如沸膀息。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)潜支。三九已至甸赃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間冗酿,已是汗流浹背埠对。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留裁替,地道東北人项玛。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像弱判,于是被迫代替她去往敵國(guó)和親襟沮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理昌腰,服務(wù)發(fā)現(xiàn)开伏,斷路器,智...
    卡卡羅2017閱讀 134,651評(píng)論 18 139
  • 一遭商、創(chuàng)建項(xiàng)目 使用vue開(kāi)發(fā)項(xiàng)目時(shí)固灵,通過(guò)腳手架工具vue-cli可以很方便的構(gòu)建項(xiàng)目,熱重載株婴、保存時(shí)靜態(tài)檢查以及可...
    一戀蝶夢(mèng)閱讀 8,718評(píng)論 1 35
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,072評(píng)論 25 707
  • 一直以來(lái)怎虫,人們都說(shuō)要做自己暑认±Ы椋可是當(dāng)我們面對(duì)諸多問(wèn)題、諸多人蘸际、諸多事情的時(shí)候真的很難座哩。我們都說(shuō)做自己,不去管別人粮彤,但...
    WXNL閱讀 545評(píng)論 4 5
  • 今日心得 1.來(lái)自張瀟雨 因?yàn)?999年互聯(lián)網(wǎng)時(shí)代的到來(lái)根穷,為創(chuàng)業(yè)而創(chuàng)業(yè)屬于“命題作文”的攜程,竟然能寫(xiě)得如此成功:...
    Pheeb閱讀 318評(píng)論 0 0