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添加自定义右键菜单的完整实例
Dec 08 Vue.js
vue组件是如何解析及渲染的?
Jan 13 Vue.js
详解vue之自行实现派发与广播(dispatch与broadcast)
Jan 19 Vue.js
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
Jan 22 Vue.js
如何在Vue项目中添加接口监听遮罩
Jan 25 Vue.js
Vue包大小优化的实现(从1.72M到94K)
Feb 18 Vue.js
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
Mar 01 Vue.js
vue项目实现分页效果
Mar 24 Vue.js
Vue.js 带下拉选项的输入框(Textbox with Dropdown)组件
Apr 17 Vue.js
vue实现移动端div拖动效果
Mar 03 Vue.js
vue3 自定义图片放大器效果的示例代码
Jul 23 Vue.js
Vue3实现简易音乐播放器组件
Aug 14 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利用str_replace防注入的方法
2013/11/10 PHP
比较完整的微信开发php代码
2016/08/02 PHP
php实现头像上传预览功能
2017/04/27 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
jQuery 学习 几种常用方法
2009/06/11 Javascript
javascript获取下拉列表框当中的文本值示例代码
2013/07/31 Javascript
jquery使用append(content)方法注意事项分享
2014/01/06 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
2014/04/16 Javascript
jQuery实现的分子运动小球碰撞效果
2016/01/27 Javascript
jQueryUI中的datepicker使用方法详解
2016/05/25 Javascript
浅析Javascript中bind()方法的使用与实现
2016/05/30 Javascript
JS获取随机数和时间转换的简单实例
2016/07/10 Javascript
jQuery实现背景滑动菜单
2016/12/02 Javascript
几种tab切换详解
2017/02/03 Javascript
基于vue+ bootstrap实现图片上传图片展示功能
2017/05/17 Javascript
vue-cli构建项目下使用微信分享功能
2018/05/28 Javascript
node thread.sleep实现示例
2018/06/20 Javascript
vue基于两个计算属性实现选中和全选功能示例
2019/02/08 Javascript
JavaScript中关于base64的一些事
2019/05/06 Javascript
Easyui 去除jquery-easui tab页div自带滚动条的方法
2019/05/10 jQuery
js图片查看器插件用法示例
2019/06/22 Javascript
从零学python系列之数据处理编程实例(二)
2014/05/22 Python
用Python编写分析Python程序性能的工具的教程
2015/04/01 Python
Python中的getopt函数使用详解
2015/07/28 Python
Python使用一行代码获取上个月是几月
2018/08/30 Python
Django 表单模型选择框如何使用分组
2019/05/16 Python
django admin 根据choice字段选择的不同来显示不同的页面方式
2020/05/13 Python
Python用SSH连接到网络设备
2021/02/18 Python
全球最大的生存食品、水和装备专用在线市场:BePrepared.com
2020/01/02 全球购物
幼儿园清明节活动总结
2014/07/04 职场文书
党员学习中共十八大思想报告
2014/09/12 职场文书
2015会计试用期工作总结
2014/12/12 职场文书
党员检讨书范文
2014/12/27 职场文书
满月酒邀请函
2015/01/30 职场文书
一看就懂的MySQL的聚簇索引及聚簇索引是如何长高的
2021/05/25 MySQL
Python可变与不可变数据和深拷贝与浅拷贝
2022/04/06 Python