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
Vue3+elementui plus创建项目的方法
Dec 01 Vue.js
vue祖孙组件之间的数据传递案例
Dec 07 Vue.js
vue实现简易计算器功能
Jan 20 Vue.js
Vue 实现可视化拖拽页面编辑器
Feb 01 Vue.js
vue-cli中实现响应式布局的方法
Mar 02 Vue.js
Vue中避免滥用this去读取data中数据
Mar 02 Vue.js
vue中data改变后让视图同步更新的方法
Mar 29 Vue.js
vue引入Excel表格插件的方法
Apr 28 Vue.js
vue实现移动端div拖动效果
Mar 03 Vue.js
Vue OpenLayer 为地图绘制风场效果
Apr 24 Vue.js
vue项目如何打包之项目打包优化(让打包的js文件变小)
Apr 30 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 仿Comsenz安装效果代码打包提供下载
2010/05/09 PHP
php empty() 检查一个变量是否为空
2011/11/10 PHP
PHP简单获取网站百度搜索和搜狗搜索收录量的方法
2016/08/23 PHP
详解ThinkPHP3.2.3验证码显示、刷新、校验
2016/12/29 PHP
jQuery 判断元素上是否绑定了事件
2009/10/28 Javascript
Confirmer JQuery确认对话框组件
2010/06/09 Javascript
原来Jquery.load的方法可以一直load下去
2011/03/28 Javascript
JQquery的一些使用心得分享
2012/08/01 Javascript
js批量设置样式的三种方法不推荐使用with
2013/02/25 Javascript
js 有框架页面跳转(target)三种情况下的应用
2013/04/09 Javascript
js控制输入框获得和失去焦点时状态显示的方法
2015/01/30 Javascript
jquery中添加属性和删除属性
2015/06/03 Javascript
JS验证邮件地址格式方法小结
2015/12/01 Javascript
深入浅析react native es6语法
2015/12/09 Javascript
jQuery根据表单name获取值的方法
2016/05/24 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
2016/05/30 Javascript
浅谈jquery的html方法里包含特殊字符的处理
2016/11/30 Javascript
node.js 和HTML5开发本地桌面应用程序
2016/12/13 Javascript
JS实现课堂随机点名和顺序点名
2017/03/09 Javascript
vue-cli构建项目下使用微信分享功能
2018/05/28 Javascript
在vue中配置不同的代理同时访问不同的后台操作
2020/09/11 Javascript
如何利用 JS 脚本实现网页全自动秒杀抢购功能
2020/10/12 Javascript
python的numpy模块安装不成功简单解决方法总结
2017/12/23 Python
Python tkinter事件高级用法实例
2018/01/31 Python
Pandas DataFrame 取一行数据会得到Series的方法
2018/11/10 Python
Python XlsxWriter模块Chart类用法实例分析
2019/03/11 Python
python读取word 中指定位置的表格及表格数据
2019/10/23 Python
使用PyOpenGL绘制三维坐标系实例
2019/12/24 Python
Python利用逻辑回归分类实现模板
2020/02/15 Python
纯CSS3实现手风琴风格菜单具体步骤
2013/05/06 HTML / CSS
亚马逊海外购:亚马逊美国、英国、日本、德国直邮
2021/03/18 全球购物
美国探亲签证邀请信
2014/02/05 职场文书
梅花魂教学反思
2014/04/25 职场文书
党的群众路线学习笔记
2014/11/06 职场文书
2015年禁毒工作总结
2015/04/30 职场文书
nginx实现动静分离的方法示例
2021/11/07 Servers