VUE項目中同時使用API代理與MockJs


VUE項目中同時使用API代理與MockJs

使用Mock的場景:

Mock 數據是前端開發過程中必不可少的一環,是分離前后端開發的關鍵鏈路。通過預先跟服務器端約定好的接口,模擬請求數據甚至邏輯,能夠讓前端開發更加獨立自主,不會被服務端的開發所阻塞。

使用API代理的場景:

如果你的前端應用和后端 API 服務器沒有運行在同一個主機上,你需要在開發環境下將 API 請求代理到 API 服務器。這個問題可以通過 vue.config.js 中的 devServer.proxy 選項來配置。

當以上兩種場景同時存在的配置案例,即后端有些API已開發完成,使用API代理通道,而后端未完成的API,使用Mock。若依的vue前端去除了mock,本文目的是把vue-element-admin中的mock加進來。

VUE-Element-Admin中改進的Mock-server

a參考:https://panjiachen.gitee.io/vue-element-admin-site/zh/guide/essentials/mock-api.html#新方案

  • 復制vue-element-admin中的mock目錄到自己的項目中,項目結構如下:

image-20210629161327164

  • 在.env.development文件中,配置以下環境變量:
VUE_APP_BASE_API = '/dev-api'
VUE_APP_MOCK_API = '/mock-api'
  • vue.config.js配置
devServer: {
    host: '0.0.0.0',
    port: port,
    open: true,
    proxy: {
      // detail: https://cli.vuejs.org/config/#devserver-proxy
      [process.env.VUE_APP_BASE_API]: {
        target: `http://localhost:8080`,
        changeOrigin: true,
        pathRewrite: {
          ['^' + process.env.VUE_APP_BASE_API]: ''
        }
      }
    },
    before: require('./mock/mock-server.js'),
    disableHostCheck: true
  },
  • 把utils/request.js復制一份,並將baseURL設置成process.env.VUE_APP_MOCK_API

image-20210629162433752

  • 對於需要Mock的API,導入request-mock:

image-20210629162659495

  • 到此get請求都沒有問題,但put及其他請求則會出現超時,把mock-server.js 修改一下,注釋app.use(bodyParser.json())

image-20210630170329160

這樣,當后端API開發完成后,前端只需要將API文件中的request導入 '@urils/request'就可以了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM