mock在vue项目中的使用

2 篇文章 0 订阅

什么是mock

Mock是什么. 可能还有些读者之前并没有接触过Mock,不清楚Mock是个啥。. Mock简单来理解,就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试。. 而这个虚拟的对象就是mock对象。. mock对象就是真实对象在调试期间的代替品。

以上是百度的解释,我的理解就是:模拟接口
因为在开发中,我们需要ui的设计图以及后端的接口才能开始开发,如果按部就班开发进度就会非常感人。这时候我们就可以通过mock模拟接口,跟后端同步开发,加快开发进度。

mock官网

第一步(创建vue项目,安装插件)

1.创建vue项目

vue create mock-demo

2.安装mock

cnpm i mockjs --save-dev

3.安装axios

cnpm i axios --save

第二步(创建mock文件夹)

新建一个mock文件夹(跟src文件同级),mock文件夹内新建index.js文件

// 1.引入mock
const Mock = require('mockjs')

// 2.模拟数据
const users = {
        roles: ['admin'],
        introduction: 'I am a super administrator',
        avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
        name: 'Super Admin',
        date: '@date',
        avatar: "@image('200x100', '#50B347', '#FFF', 'Mock.js')", //参数:大小;背景;foreground(文字颜色);文字 
        description: '@paragraph', // 描述
        ip: "@ip()", // ip地址
        email: "@email"
}

//3.返回一个函数
module.exports = function(app){
    if(process.env.Mock == "true"){// 对环境变量进行一个判断,方便我们替换真实接口
        //监听http请求
        app.get('/user/userinfo', function(req, res) {
            //将数据传入Mock.mock 方法中,生成的数据返回给浏览器
            res.json(Mock.mock(users));
        });
    }
}

第三步(配置vue.config.js文件)

在这里进行请求拦截,换成我们mock的数据

module.exports = {
    devServer: {
        before: require('./mock/index.js')// axios 请求拦截
    }
}

第四步(在项目中使用)

<template>
  <div class="home" v-if="data">
    头像: <img :src="data.avatar" alt=""><br>
    姓名:{{data.name}}<br>
    生日:{{data.date}}<br>
    邮箱:{{data.email}}<br>
    IP:  {{data.ip}}<br>
    介绍:{{data.introduction}}<br>

  </div>
</template>

<script>
import axios from 'axios'

export default {
  name: 'Home',
  data(){
    return {
      data: null
    }
  },
  mounted(){
    axios.get('/user/userinfo').then(res => {
      console.log(res)
      this.data = res.data
    }).catch(err => {
      console.error(err)
    })
  }
}
</script>

第五步(添加环境边境变量)

如果后端接口写完了,如何快速替换真实接口呢?
添加环境边境变量,方便我们替换真实接口
*注意:一个 Vue CLI 项目有三个模式:你需要根据自己的情况进行配置
在这里插入图片描述
我的是development 模式用于 vue-cli-service serve,所以我的环境边境变量文件名字是 :.env.development

Mock=true

并在mock的index.js的函数中进行判断,上面的index.js代码我已经写了

 if(process.env.Mock == "true"){// 对环境变量进行一个判断,方便我们替换真实接口
 	...
 }

补充

项目地址

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue项目Mock是一种用于模拟接口数据的技术。它可以在测试过程,用虚拟的对象来代替一些不容易构造或获取的对象,以便进行测试。\[1\] 在Vue项目使用Mock,一般需要进行以下几个步骤: 1. 创建mock文件夹:在项目的src目录下创建一个名为mock的文件夹,用于存放Mock相关的文件。 2. 配置vue.config.js文件:在项目的根目录下找到vue.config.js文件(如果没有则需要手动创建),在该文件进行Mock的配置。可以通过配置webpack的devServer属性来启用Mock服务。 3. 编写Mock接口:在mock文件夹下创建一个index.js文件,用于配置Mock服务。在该文件,可以使用Mock.js来模拟接口数据。可以根据需要创建多个模拟接口的文件,放在api文件夹下。 4. 在项目使用Mock:在需要使用Mock数据的地方,可以通过import语句引入Mock接口文件,并使用定义的接口进行数据模拟。 5. 添加环境变量:为了在不同的环境使用不同的Mock配置,可以在项目添加环境变量,根据环境变量的值来判断是否启用Mock服务。\[2\]\[3\] 需要注意的是,Mock只在开发环境使用,不会影响生产环境。在生产环境Mock相关的代码会被自动剔除。 #### 引用[.reference_title] - *1* *3* [mockvue项目使用 —— json写法](https://blog.csdn.net/myisyourbb/article/details/118759231)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [在Vue项目使用Mock](https://blog.csdn.net/weixin_42275702/article/details/117621167)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值