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

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

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

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

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

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

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

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

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

配置流程

  • 全局安裝 $ npm install -g json-server
  • 項目目錄下創(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"

啟動 mock 服務(wù)器

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

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

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

如果需要大量的偽數(shù)據(jù),手動構(gòu)造比較費時費力,可以使用 faker.js 批量生成。faker.js 的具體使用參見官方文檔,這里做一個示例。

  • $ 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
    請求 http://localhost:3000/address 可以獲取到隨機生成的100組偽數(shù)據(jù)

添加中間件

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

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

重新啟動服務(wù),POST請求就被轉(zhuǎn)換為GET請求了

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

代理設(shè)置

config/index.jsproxyTable 將請求映射到 http://localhost:3000

代碼中添加請求以測試效果

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

結(jié)果如下:


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

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

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,568評論 19 139
  • 一、創(chuàng)建項目 使用vue開發(fā)項目時,通過腳手架工具vue-cli可以很方便的構(gòu)建項目,熱重載、保存時靜態(tài)檢查以及可...
    一戀蝶夢閱讀 8,927評論 1 35
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,048評論 25 709
  • 一直以來,人們都說要做自己??墒钱斘覀兠鎸χT多問題、諸多人、諸多事情的時候真的很難。我們都說做自己,不去管別人,但...
    WXNL閱讀 599評論 4 5
  • 今日心得 1.來自張瀟雨 因為1999年互聯(lián)網(wǎng)時代的到來,為創(chuàng)業(yè)而創(chuàng)業(yè)屬于“命題作文”的攜程,竟然能寫得如此成功:...
    Pheeb閱讀 369評論 0 0

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