vue中控制mock在开发环境使用,在生产环境禁用方式


Posted in Vue.js onApril 06, 2022

vue控制mock在开发环境使用,在生产环境禁用

说下原因

mock拦截所有的axios请求,根据请求,做出相应的响应。平时前后端分离开发,我们使用mock获得相应的数据,但当和后端联调的时候,不禁用mock,就无法获得后端数据。

解决方案

第一步、我们设置mock在开发development环境可用,在生产production环境不可用。

在vue中通过设置main.js中的Vue.config.productionTip来决定模式。

默认为false是生产环境。我们将其设置为true即进入了开发环境,设置后,可在浏览器检查中看到You are runing Vue in development mode如下图:

vue中控制mock在开发环境使用,在生产环境禁用方式

第二步、我们在config/dev.env.js和config/prod.env.js中设置变量。相当于同一个变量名,在不同的模式下,有不同的值。

// dev.env.js下的配置。
module.exports = merge(prodEnv, {
  NODE_ENV: '"development"',
  MOCK: true //开发环境使用mock
})
// prod.env.js下的配置
module.exports = {
  NODE_ENV: '"production"',
  MOCK: false // 生产环境禁用mock
}

同理,如果有其他在生产环境和开发环境取值不同的同名变量,可以定义在相应的文件中,如在axios请求时,不同环境有不同的baseURL,即可以设置。

第三步、在main.js中设置process.env.MOCK && require("./mock/index.js")。process.env.MOCK这句就是判断刚才设置的值,如果是true,才会执行语句引入mock,如果是false,则后面的语句不执行,即不引入mock。

vue中使用mock(常用方式) 

近期在学习Vue,碰到前端需要数据,自己手敲太麻烦,页面也不美观,于是想到了用mock。之前用过一次,但现在全忘了。所以在这里记录一下,以备不时之需。本文从项目建好后一步一步进行vue+mock的使用。

前期准备

1)新建一个vue项目

2)将helloworld.vue的内容删除,便于后期调试

3)新建一个按钮控件,绑定一个点击事件

vue中控制mock在开发环境使用,在生产环境禁用方式

安装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官网

下面给出简单的示例代码:

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在开发环境使用,在生产环境禁用方式

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。 

Vue.js 相关文章推荐
vue实现下载文件流完整前后端代码
Nov 17 Vue.js
vue element-ul实现展开和收起功能的实例代码
Nov 25 Vue.js
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
Dec 01 Vue.js
vue项目中企业微信使用js-sdk时config和agentConfig配置方式详解
Dec 15 Vue.js
vue 在单页面应用里使用二级套嵌路由
Dec 19 Vue.js
解决vue使用vant轮播组件swipe + flex时文字抖动问题
Jan 07 Vue.js
Vue使用Ref跨层级获取组件的步骤
Jan 25 Vue.js
Vue2.x-使用防抖以及节流的示例
Mar 02 Vue.js
vue Element-ui表格实现树形结构表格
Jun 07 Vue.js
Vue全局事件总线你了解吗
Feb 24 Vue.js
vue实现滑动解锁功能
Mar 03 Vue.js
vue3使用vuedraggable实现拖拽功能
vue整合百度地图显示指定地点信息
vue中使用mockjs配置和使用方式
VUE使用draggable实现组件拖拽
Apr 06 #Vue.js
教你部署vue项目到docker
vue使用wavesurfer.js解决音频可视化播放问题
Apr 04 #Vue.js
vue中div禁止点击事件的实现
Apr 02 #Vue.js
You might like
ajax 的post方法实例(带循环)
2011/07/04 PHP
用PHP代码给图片加水印
2015/07/01 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
2016/08/17 PHP
PHP实现数组根据某个单元字段排序操作示例
2018/08/01 PHP
jQuery示例收集
2010/11/05 Javascript
instanceof和typeof运算符的区别详解
2014/01/06 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
2016/06/30 Javascript
浅析Node.js实现HTTP文件下载
2016/08/05 Javascript
微信小程序 跳转传参数与传对象详解及实例代码
2017/03/14 Javascript
jQuery上传插件webupload使用方法
2017/08/01 jQuery
JavaScript 完成注册页面表单校验的实例
2017/08/19 Javascript
使用原生js+canvas实现模拟心电图的实例
2017/09/20 Javascript
微信小程序通过js实现瀑布流布局详解
2019/08/28 Javascript
Javascript异步编程async实现过程详解
2020/04/02 Javascript
vue 通过base64实现图片下载功能
2020/12/19 Vue.js
python实现简单爬虫功能的示例
2016/10/24 Python
详解python发送各类邮件的主要方法
2016/12/22 Python
tensorflow获取变量维度信息
2018/03/10 Python
用Python写一个模拟qq聊天小程序的代码实例
2019/03/06 Python
超简单使用Python换脸实例
2019/03/27 Python
python enumerate内置函数用法总结
2020/01/07 Python
浅谈pycharm导入pandas包遇到的问题及解决
2020/06/01 Python
ECCO爱步官方旗舰店:丹麦鞋履品牌
2018/01/02 全球购物
荷兰超市:DEEN
2018/03/14 全球购物
俄罗斯在线购买飞机票、火车票、巴士票网站:Tutu.ru
2020/03/16 全球购物
俄罗斯第一家多品牌在线奢侈品精品店:Aizel.ru
2020/09/06 全球购物
村委会主任先进事迹
2014/01/15 职场文书
小学敬老月活动方案
2014/02/11 职场文书
高中军训感言500字
2014/02/24 职场文书
《他得的红圈圈最多》教学反思
2014/04/24 职场文书
新手上路标语
2014/06/20 职场文书
2014年社区宣传工作总结
2014/12/02 职场文书
单位实习鉴定评语
2015/01/04 职场文书
2015年财务部工作总结
2015/04/10 职场文书
钱学森电影观后感
2015/06/04 职场文书
mysql使用instr达到in(字符串)的效果
2022/04/03 MySQL