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 18 Vue.js
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
Dec 04 Vue.js
在vue中动态修改css其中一个属性值操作
Dec 07 Vue.js
详解vue-cli项目在IE浏览器打开报错解决方法
Dec 10 Vue.js
vue项目中企业微信使用js-sdk时config和agentConfig配置方式详解
Dec 15 Vue.js
如何在 Vue 表单中处理图片
Jan 26 Vue.js
vue穿梭框实现上下移动
Jan 29 Vue.js
vue使用lodop打印控件实现浏览器兼容打印的方法
Feb 07 Vue.js
浅谈vue2的$refs在vue3组合式API中的替代方法
Apr 18 Vue.js
idea编译器vue缩进报错问题场景分析
Jul 04 Vue.js
vue中的可拖拽宽度div的实现示例
Apr 08 Vue.js
vue postcss-px2rem 自适应布局
May 15 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
日本因肺炎疫情影响,这几部动漫推延播放!
2020/03/03 日漫
分享自定义的几个PHP功能函数
2015/04/15 PHP
php遍历解析xml字符串的方法
2016/05/05 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
PHP开发API接口签名生成及验证操作示例
2020/05/27 PHP
基于jQuery的输入框无值自动显示指定数据的实现代码
2011/01/24 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
JS显示下拉列表框内全部元素的方法
2015/03/31 Javascript
thinkphp实现无限分类(使用递归)
2015/12/19 Javascript
js计算时间差代码【包括计算,天,时,分,秒】
2016/04/26 Javascript
BootStrap智能表单demo示例详解
2016/06/13 Javascript
JavaScript如何实现跨域请求
2016/08/05 Javascript
jQuery事件详解
2017/02/23 Javascript
AngularJS之自定义服务详解(factory、service、provider)
2017/04/14 Javascript
简单的Vue异步组件实例Demo
2017/12/27 Javascript
js模拟F11页面全屏显示
2019/09/17 Javascript
Layui选项卡制作历史浏览记录的方法
2019/09/28 Javascript
js+audio实现音乐播放器
2020/09/13 Javascript
python网络编程学习笔记(九):数据库客户端 DB-API
2014/06/09 Python
Python装饰器入门学习教程(九步学习)
2016/01/28 Python
Python常用库推荐
2016/12/04 Python
Python实现注册、登录小程序功能
2018/09/21 Python
python使用xlsxwriter实现有向无环图到Excel的转换
2018/12/12 Python
严选全球尖货,立足香港:Bonpont宝盆
2018/07/24 全球购物
竞聘医务工作人员的自我评价分享
2013/11/04 职场文书
客服工作职责
2013/12/11 职场文书
大学生期末自我鉴定
2014/02/01 职场文书
餐饮收银员岗位职责
2014/02/07 职场文书
2014入党积极分子破除“四风”思想汇报
2014/09/14 职场文书
科技活动周标语
2014/10/08 职场文书
公务员年度个人总结
2015/02/12 职场文书
2015年公民道德宣传日活动总结
2015/03/23 职场文书
交通事故责任认定书
2015/08/06 职场文书
同学联谊会邀请函
2019/06/24 职场文书
Python实现简单得递归下降Parser
2022/05/02 Python