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+element_ui上传文件,并传递额外参数操作
Dec 05 Vue.js
vue-video-player 断点续播的实现
Feb 01 Vue.js
Vue实现todo应用的示例
Feb 20 Vue.js
详解Vue3.0 + TypeScript + Vite初体验
Feb 22 Vue.js
vue 数据双向绑定的实现方法
Mar 04 Vue.js
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
May 18 Vue.js
idea编译器vue缩进报错问题场景分析
Jul 04 Vue.js
vue使用echarts实现折线图
Mar 21 Vue.js
vue实现列表拖拽排序的示例代码
Apr 08 Vue.js
vue3语法糖内的defineProps及defineEmits
Apr 14 Vue.js
Vue ECharts实现机舱座位选择展示功能
May 15 Vue.js
vue如何在data中引入图片的正确路径
Jun 05 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
初学者入门:细述PHP4的核心Zend
2006/09/05 PHP
PHP提交表单失败后如何保留已经填写的信息
2014/06/20 PHP
PHP动态编译出现Cannot find autoconf的解决方法
2014/11/05 PHP
php利用反射实现插件机制的方法
2015/03/14 PHP
php实现的简单日志写入函数
2015/03/31 PHP
php连接sftp的作用以及实例代码
2019/09/23 PHP
IE8 浏览器Cookie的处理
2009/01/31 Javascript
javascript级联下拉列表实例代码(自写)
2013/05/10 Javascript
JS获取农历日期具体实例
2013/11/14 Javascript
JavaScript截取字符串的2个函数介绍
2014/08/27 Javascript
JS实现完全语义化的网页选项卡效果代码
2015/09/15 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
2015/10/20 Javascript
JavaScript提升性能的常用技巧总结【经典】
2016/06/20 Javascript
vue 2.0项目中如何引入element-ui详解
2017/09/06 Javascript
JS计算两个时间相差分钟数的方法示例
2018/01/10 Javascript
Vue-Router模式和钩子的用法
2018/02/28 Javascript
Javascript实现动态时钟效果
2018/11/17 Javascript
vue微信分享出来的链接点开是首页问题的解决方法
2018/11/28 Javascript
js 执行上下文和作用域的相关总结
2021/02/08 Javascript
[01:12:27]EG vs Secret 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python实现的快速排序算法详解
2017/08/01 Python
Python 中的Selenium异常处理实例代码
2018/05/03 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
2019/06/03 Python
Django 1.10以上版本 url 配置注意事项详解
2019/08/05 Python
python中有关时间日期格式转换问题
2019/12/25 Python
tensorflow 保存模型和取出中间权重例子
2020/01/24 Python
Python龙贝格法求积分实例
2020/02/29 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
2020/04/24 Python
英国领先的运动营养品牌:Protein Dynamix
2018/01/02 全球购物
英国皇家邮政海外旗舰店:Royal Mail
2018/02/21 全球购物
医疗纠纷协议书
2014/04/16 职场文书
读书之星事迹材料
2014/05/12 职场文书
中考标语大全
2014/06/05 职场文书
小区保洁员岗位职责
2015/04/10 职场文书
「月刊Comic Alive」2022年5月号封面公开
2022/03/21 日漫
码云(gitee)通过git自动同步到阿里云服务器
2022/12/24 Servers