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 相关文章推荐
深入了解Vue3模板编译原理
Nov 19 Vue.js
浅谈Vue使用Elementui修改默认的最快方法
Dec 05 Vue.js
详解Vue中的自定义指令
Dec 07 Vue.js
Vue实现指令式动态追加小球动画组件的步骤
Dec 18 Vue.js
vue 在单页面应用里使用二级套嵌路由
Dec 19 Vue.js
Vuex实现简单购物车
Jan 10 Vue.js
基于VUE实现简单的学生信息管理系统
Jan 13 Vue.js
vue实现验证用户名是否可用
Jan 20 Vue.js
vue实现水波涟漪效果的点击反馈指令
May 31 Vue.js
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
Jun 09 Vue.js
vue实现拖拽交换位置
Apr 07 Vue.js
vue3种table表格选项个数的控制方法
Apr 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之数组学习
2011/05/29 PHP
PHP学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
PHP实现类似于C语言的文件读取及解析功能
2017/09/01 PHP
PHP+jQuery实现双击修改table表格功能示例
2019/02/21 PHP
jquery.validate分组验证代码
2011/03/17 Javascript
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
将中国标准时间转换成标准格式的代码
2014/03/20 Javascript
简介JavaScript中setUTCSeconds()方法的使用
2015/06/12 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
2015/08/23 Javascript
JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解
2016/06/14 Javascript
JS实现最简单的冒泡排序算法
2017/02/15 Javascript
Node解决简单重复问题系列之Excel内容的获取
2018/01/02 Javascript
angularJs 表格添加删除修改查询方法
2018/02/27 Javascript
你点的 ES6一些小技巧,请查收
2018/04/25 Javascript
vue项目设置scrollTop不起作用(总结)
2018/12/21 Javascript
axios封装,使用拦截器统一处理接口,超详细的教程(推荐)
2019/05/02 Javascript
Node.js 路由的实现方法
2019/06/05 Javascript
这15个Vue指令,让你的项目开发爽到爆
2019/10/11 Javascript
Python中使用插入排序算法的简单分析与代码示例
2016/05/04 Python
Python排序搜索基本算法之堆排序实例详解
2017/12/08 Python
使用python对文件中的数值进行累加的实例
2018/11/28 Python
浅谈python str.format与制表符\t关于中文对齐的细节问题
2019/01/14 Python
Python爬虫 批量爬取下载抖音视频代码实例
2019/08/16 Python
Django发送邮件功能实例详解
2019/09/02 Python
Django 后台带有字典的列表数据与页面js交互实例
2020/04/03 Python
Keras预训练的ImageNet模型实现分类操作
2020/07/07 Python
HTML5 实现一个访问本地文件的实例
2012/12/13 HTML / CSS
JDBC操作数据库的基本流程是什么
2014/10/28 面试题
大学校园活动策划书
2014/02/04 职场文书
最经典的商业地产项目广告词
2014/03/13 职场文书
培训讲师岗位职责
2014/04/13 职场文书
公司离职证明标准范本
2014/10/05 职场文书
2015大学生实训报告
2014/11/05 职场文书
单位实习鉴定评语
2015/01/04 职场文书
妇产科护理心得体会
2016/01/22 职场文书
手写实现JS中的new
2021/11/07 Javascript