溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue中怎么控制mock在開發(fā)環(huán)境使用

發(fā)布時間:2022-04-06 11:03:34 來源:億速云 閱讀:276 作者:iii 欄目:開發(fā)技術

這篇文章主要介紹“vue中怎么控制mock在開發(fā)環(huán)境使用”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“vue中怎么控制mock在開發(fā)環(huán)境使用”文章能幫助大家解決問題。

vue控制mock在開發(fā)環(huán)境使用,在生產(chǎn)環(huán)境禁用

說下原因

mock攔截所有的axios請求,根據(jù)請求,做出相應的響應。平時前后端分離開發(fā),我們使用mock獲得相應的數(shù)據(jù),但當和后端聯(lián)調的時候,不禁用mock,就無法獲得后端數(shù)據(jù)。

解決方案

第一步、我們設置mock在開發(fā)development環(huán)境可用,在生產(chǎn)production環(huán)境不可用。

在vue中通過設置main.js中的Vue.config.productionTip來決定模式。

默認為false是生產(chǎn)環(huán)境。我們將其設置為true即進入了開發(fā)環(huán)境,設置后,可在瀏覽器檢查中看到You are runing Vue in development mode如下圖:

vue中怎么控制mock在開發(fā)環(huán)境使用

第二步、我們在config/dev.env.js和config/prod.env.js中設置變量。相當于同一個變量名,在不同的模式下,有不同的值。

// dev.env.js下的配置。
module.exports = merge(prodEnv, {
  NODE_ENV: '"development"',
  MOCK: true //開發(fā)環(huán)境使用mock
})
// prod.env.js下的配置
module.exports = {
  NODE_ENV: '"production"',
  MOCK: false // 生產(chǎn)環(huán)境禁用mock
}

同理,如果有其他在生產(chǎn)環(huán)境和開發(fā)環(huán)境取值不同的同名變量,可以定義在相應的文件中,如在axios請求時,不同環(huán)境有不同的baseURL,即可以設置。

第三步、在main.js中設置process.env.MOCK && require("./mock/index.js")。process.env.MOCK這句就是判斷剛才設置的值,如果是true,才會執(zhí)行語句引入mock,如果是false,則后面的語句不執(zhí)行,即不引入mock。

vue中使用mock(常用方式) 

近期在學習Vue,碰到前端需要數(shù)據(jù),自己手敲太麻煩,頁面也不美觀,于是想到了用mock。之前用過一次,但現(xiàn)在全忘了。所以在這里記錄一下,以備不時之需。本文從項目建好后一步一步進行vue+mock的使用。

前期準備

1)新建一個vue項目

2)將helloworld.vue的內容刪除,便于后期調試

3)新建一個按鈕控件,綁定一個點擊事件

vue中怎么控制mock在開發(fā)環(huán)境使用

安裝axios和mock.js插件

使用npm方式安裝

// 安裝axios插件
npm install  axios --save
// 安裝mockjs插件
npm install mockjs --save-dev

在main.js中引入

import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
import axios from 'axios'             // 新增
Vue.prototype.$axios = axios    // 新增

編寫mock.js

在src下新建mock文件,并新建文件mock.js。代碼編寫詳細可參考mock.js官網(wǎng)

下面給出簡單的示例代碼:

import Mock from 'mockjs'  // 引入mockjs
Mock.mock('/api/test',{
  data: {
    test: "test"
  }
})

調用

在helloworld中編寫點擊事件

 methods: {
    test(){
      this.$axios({
        method: 'get',
        url: "/api/test"
      }).then(function(response) {
        console.log(response)
      })
      .catch(function(error) {
          console.log(error);
        });
    }
}

成功

vue中怎么控制mock在開發(fā)環(huán)境使用

關于“vue中怎么控制mock在開發(fā)環(huán)境使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識,可以關注億速云行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI