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 相关文章推荐
vuex的数据渲染与修改浅析
Nov 26 Vue.js
在vue中使用inheritAttrs实现组件的扩展性介绍
Dec 07 Vue.js
浅析vue中的nextTick
Dec 28 Vue.js
vue实现简易的双向数据绑定
Dec 29 Vue.js
基于vuex实现购物车功能
Jan 10 Vue.js
vue自定义组件实现双向绑定
Jan 13 Vue.js
vscode自定义vue模板的实现
Jan 27 Vue.js
vue使用transition组件动画效果的实例代码
Jan 28 Vue.js
vue 使用饿了么UI仿写teambition的筛选功能
Mar 01 Vue.js
详解vue身份认证管理和租户管理
May 25 Vue.js
Vue中插槽slot的使用方法与应用场景详析
Jun 08 Vue.js
vue 自定义的组件绑定点击事件
Apr 21 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
PHP乱码问题,UTF-8乱码常见问题小结
2012/04/09 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
PHP实现四种基础排序算法的运行时间比较(推荐)
2016/08/11 PHP
PHP简单实现二维数组赋值与遍历功能示例
2017/10/19 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
2018/11/10 PHP
PHP实现页面静态化深入讲解
2021/03/04 PHP
ajax无刷新动态调用股票信息(改良版)
2008/11/01 Javascript
jQuery实现的在线答题功能
2015/04/12 Javascript
基于javascript实现图片预加载
2016/01/05 Javascript
Javascript技术栈中的四种依赖注入小结
2016/02/27 Javascript
JavaScript 拖拽实例代码
2016/09/21 Javascript
JS中的Replace()传入函数时的用法详解
2017/09/11 Javascript
javascript中new Array()和var arr=[]用法区别
2017/12/01 Javascript
node.js调用C++函数的方法示例
2018/09/21 Javascript
一篇文章,教你学会Vue CLI 插件开发
2019/04/17 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
何时/使用 Vue3 render 函数的教程详解
2020/07/25 Javascript
Python实现从url中提取域名的几种方法
2014/09/26 Python
python追加元素到列表的方法
2015/07/28 Python
django之session与分页(实例讲解)
2017/11/13 Python
python实现pdf转换成word/txt纯文本文件
2018/06/07 Python
Python IDLE清空窗口的实例
2018/06/25 Python
通过python连接Linux命令行代码实例
2020/02/18 Python
使用Python对Dicom文件进行读取与写入的实现
2020/04/20 Python
django 利用Q对象与F对象进行查询的实现
2020/05/15 Python
CSS3简单实现照片墙
2014/12/12 HTML / CSS
P D PAOLA意大利官网:西班牙著名的珠宝首饰品牌
2019/09/24 全球购物
手术室护士自我鉴定
2013/10/14 职场文书
个人自我评价范文
2014/02/05 职场文书
现场施工员岗位职责
2014/03/10 职场文书
超市促销活动总结
2014/07/01 职场文书
临床医学专业求职信
2014/08/08 职场文书
与死神共舞观后感
2015/06/15 职场文书
委托开发合同书(标准版)
2019/08/07 职场文书
一小时学会TensorFlow2之基本操作2实例代码
2021/09/04 Python
MySQL分区表实现按月份归类
2021/11/01 MySQL