iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue中使用mockjs配置和使用方式
  • 561
分享到

vue中使用mockjs配置和使用方式

2024-04-02 19:04:59 561人浏览 安东尼
摘要

目录mockjs配置和使用方式需求步骤mock使用及mock无侵入的解决什么是mock?为什么要用到mock?如何使用mock?mock无侵入式配置mockjs配置和使用方式 需求

mockjs配置和使用方式

需求

在前后端分离的开发中,需要前后端同时开发,但是在后端完成前,暂时是没有数据返回给前端使用的,如果先写静态后面再改,就有重复工作的内耗存在。

所以我们需要一种简单快速的模拟数据的模块,本文选的是mockjs。

步骤

1.安装mockjs

npm install mockjs

2.在项目的src文件夹下建mock文件夹,在mock文件夹下建index.js(存放所有的Http模拟返回的接口数据);以下我写了两个接口:

import Mock from 'mockjs';
const vehicle = Mock.mock(
  '/api/car', 'post', (req, res) => {
    return {
      code: 200,
      data: [{
        id: 1,
        name: 'BYD',
      }, {
        id: 1,
        name: 'baojun',
      }],
      message: '查询成功'
    }
  })
const user = Mock.mock(
  '/api/user', 'get', (req, res) => {
    return {
      code: 200,
      data: {
        id: 1,
        sex: 1,
        age: 25,
        createTime: '2017-04-01'
      },
      message: '查询成功'
    }
  })
export default {
  vehicle,
  user
}

3.为了方便在所有组件中使用mock模拟数据在项目 的main.js中导入刚编辑的接口数据

 import mockdata from "./mock"; //这样的话组件里就可以随意调用接口了

4.在组件中调用虚拟接口

在生命周期钩子函数中调用接口即可:我使用axiOS ,前提是项目已经安装了axios(先npm install axios,再npm install --save axios Vue-axios),一个按钮执行点击事件,下面方法调接口

<button @click="search()">点击查询</button>
  methods: {
    search() {
      this.$http.get("/api/user").then(res => {
        console.log(res);
      });
      this.$http.post("/api/car").then(res => {
        console.log(res);
      });
    }
  },

在这里插入图片描述

5.注在项目接口调试完成后需要删除main.js中对于mock的引用以及mock/index.js这些模拟的资源,从而组件中不用做任何修改,最大减少反复工作量

mock使用及mock无侵入的解决

什么是mock?

在这里插入图片描述

在这里插入图片描述

看了官网的介绍,对前端来说“前后端分离”这点,大大提高了前端开发的效率

前端开发在商讨完需求、接口及数据格式后,就可以直接利用mock模拟后台返回的数据来进行代码开发

为什么要用到mock?

下面我在画个流程图,帮助大家理解mock在项目中的处理逻辑

在这里插入图片描述

由此可以看出,前端可以利用mock服务来模拟请求后台数据,只要接口文档出来,就可以按照接口文档的api和数据格式来自己用mock模拟假数据

如何使用mock?

此处以vue-cli2.x脚手架搭起的项目来介绍其使用

1.安装mockjs npm install --save-dev mockjs或 npm install -D mockjs

2.根目录src中添加mock文件夹,如下图结构,并创建

在这里插入图片描述

其中index.js内容为:

 import Mock from 'mockjs'
 import { Service } from './data/service'
 Mock.mock(/\/Service\/ServiceList/, 'get', Service )
console.log('%c前端 mock 环境启动成功', 'color: #38f;font-weight: bold')
export default Mock

data文件夹中的service.js 为mock模拟返回的数据,其内容为:

import Mock from 'mockjs';
const Service = [];
for (let i = 0; i < 5; i++) {
Service.push(Mock.mock({
 id: Mock.Random.guid(),
 serviceName: `${Mock.Random.protocol()} --${Mock.Random.id()}`,
 'port|8000-9000': 1,
 ip: Mock.Random.ip(),
 status: Mock.Random.pick(['passing', 'Critical', 'critical','null']),
 'node|0-2': 1 
}));
}
export default Service;

3.在main.js中引入定义的mock文件夹

import Mock from './mock'

此时打开终端控制面板,运行 npm run dev 后,打开开发者调试工具的console,即可看见

在这里插入图片描述

4.接下来,发送的所有http请求均会被mock拦截,如果匹配到与mock中设置的url路径一致 /Service/ServiceList 就会将service.js的模拟出的数据返回,如下(.vue的文件中)

<script>
import axios from "axios";
export default {
  data() {
    return {
    };
  },
  methods: {
    getServer() {
      axios
        .get('/Service/ServiceList')
        .then((res) => {
          console.log(res);
        })
        .catch((error) => {
          console.log(error);
        });
     }
  },
};
</script>

在这里插入图片描述

​ 如上截图,可以看出已经将发送给该url的请求匹配拦截并返回了一个对象,可以定义一个空数组将res.data的数据保存起来,到页面进行渲染

5.如果发送http请求的url与mock中定义的不匹配或不存在的话,就会弹出报错

在这里插入图片描述

注意:还记得前面说过的mock会拦截所有http请求,包括你要请求的真实API,也会拦截,提示404报错;此时将main.js中的引入的 import Mock from './mock' 注释掉就好了

但是,”懒“这个动力,让我们思考,如何将mock这个东西很听话的被我们”蹂躏“呢?

mock无侵入式配置

接着上面留出的问题,我们就要思考,如何将mock在项目代码中分离,既能保证前后端分离开发,又能在不改代码的情况下任意切换环境;

​ 大家应该都清楚用vue-cli搭建好的项目框架中,会有直接配置好的 npm run dev 和 npm run build 环境;

​ 想到这一步,大家应该也就有了思路,那就是再配置一套dev环境,重命名为mock,后期直接通过 npm run mock 和 npm run dev 一条指令随意切换代码运行环境

​ 如何实现呢?且听我细细道来(此处以vue@2.5.2版本为例)

1.用vue-cli搭建好的项目框架,打开 package.JSON 文件,添加运行脚本

"mock": "webpack-dev-server --inline --progress --config build/WEBpack.mock.conf.js"

如下:

"scripts": {
    "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
    "mock": "webpack-dev-server --inline --progress --config build/webpack.mock.conf.js",   //---此条脚本就是需要配置的参数,注意json文件中不能写注释,切勿复制此句话
    "start": "npm run dev",
    "lint": "eslint --ext .js,.vue src",
    "build": "node build/build.js"
  },

2.在根目录下的build文件夹中创建 webpack.mock.conf.js 文件,并将 webpack.dev.conf.js 的文件内容全部复制过来

3.在 webpack.mock.conf.js 中添加配置,如下

let entry = baseWebpackConfig.entry
Object.keys(entry).forEach(function (name) {
 entry[name] = ['./src/mock'].concat(entry[name]) //---在运行npm run mock时将mock这个文件在entry中打包编译进来
})

在这里插入图片描述

保存好后,打开终端运行 npm run mock

在这里插入图片描述

后期如果需要与后台调试接口了,直接运行 npm run dev 即可切换过来,保证了mock在业务代码中抽离出

注意 :在 webpack.mock.config.js 中配置了entry后,是不需要在main.js中再引入Mock的。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: vue中使用mockjs配置和使用方式

本文链接: https://www.lsjlt.com/news/145068.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue中使用mockjs配置和使用方式
    目录mockjs配置和使用方式需求步骤mock使用及mock无侵入的解决什么是mock?为什么要用到mock?如何使用mock?mock无侵入式配置mockjs配置和使用方式 需求 ...
    99+
    2022-11-13
  • vue中怎么配置和使用mockjs
    这篇文章主要讲解了“vue中怎么配置和使用mockjs”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue中怎么配置和使用mockjs”吧!mockjs配置和使用方式需求在前后端分离的开发中...
    99+
    2023-06-29
  • 在react中如何使用mockjs方法
    本篇内容主要讲解“在react中如何使用mockjs方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“在react中如何使用mockjs方法”吧!介绍mock意为“模仿”或"模拟&qu...
    99+
    2023-06-29
  • Vue中使用eslint和editorconfig方式
    目录使用eslint和editorconfig方式使用eslint的好处安装eslint文件配置说明启动命令配置自动检查语法配置添加editorconfigvue editorcon...
    99+
    2022-11-13
  • vue cli怎么配置和使用
    本篇内容主要讲解“vue cli怎么配置和使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue cli怎么配置和使用”吧!一、Vue CLI1.1.什么是Vue CLI如果你只是简单写几个V...
    99+
    2023-07-02
  • SpringMVC使用注解配置方式
    目录SpringMVC注解配置方式一、创建初始化类二、spring的配置类三、WebConfig 配置类剩余配置SpringMVC注解配置方式 使用配置类和注解代替web.xml和S...
    99+
    2022-11-13
  • 在react中使用mockjs的方法你知道吗
    目录介绍安装&卸载&引入基础语法&规范 7种生成规则生成规则和属性值value的关系占位符@模拟接口总结介绍 mock意为“模仿&rdq...
    99+
    2022-11-13
  • 浅析Vue中插槽和配置代理的使用方法
    如何正确快速使用Vue中的插槽和配置代理?下面本篇文章给大家介绍一下Vue中插槽和配置代理的使用方法,希望对大家有所帮助!一,插槽1.什么是插槽让父组件可以向子组件指定位置插入html结构,也是一种组件间通信的方式,适用于父组件——>...
    99+
    2023-05-14
    配置代理 Vue 插槽
  • .eslintrc配置目录及配置项的使用方式
    目录.eslintrc文件配置介绍规则文档eslint问题如下还有相关的案例说明今天在运行antd-design-vue的源代码项目时,发现vscode有很多eslint的报错,原因...
    99+
    2022-11-13
    eslintrc配置目录 eslintrc配置项 eslintrc配置
  • vue中router怎么配置使用
    这篇文章主要介绍了vue中router怎么配置使用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 路由,其实就是指向的意思,当我点击页面上的...
    99+
    2022-10-19
  • vue中使用typescript配置步骤
    目录1、vue老项目引入TypeScripe从零开始创建vue+typescript项目通过前端各个框架的发展,例如vue3.0,react和angular等框架的源码都是用ts(t...
    99+
    2022-11-12
  • Vue中怎么配置使用process.env
    这篇文章主要讲解了“Vue中怎么配置使用process.env”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue中怎么配置使用process.env”吧!vue process.envpr...
    99+
    2023-07-05
  • mybatis spring配置SqlSessionTemplate的使用方式
    mybatis spring配置SqlSessionTemplate使用 1.application.xml配置 <?xml version="1.0" encod...
    99+
    2022-11-12
  • 使用纯javaconfig来配置springmvc方式
    目录1、使用mavan新建一个webmvc项目2、新建好了项目后3、编辑pom.xml使用maven来引入项目依赖包4、先来看看基本项目完成后的web.xml是什么样子的5、先在sr...
    99+
    2022-11-12
  • vue使用vite配置跨域及环境配置的方法
    这篇文章主要介绍“vue使用vite配置跨域及环境配置的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue使用vite配置跨域及环境配置的方法”文章能帮助大家解决问题。如何配置跨域,代理域名不...
    99+
    2023-07-02
  • Vue中插槽和配置代理如何使用
    这篇“Vue中插槽和配置代理如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue中插槽和配置代理如何使用”文章吧。一...
    99+
    2023-07-05
  • vue 3.0 vue.config.js文件常用配置方式
    目录vue3.0 vue.config.js文件常用配置vue3实战-vue.config.js配置问题总结vue3.0 vue.config.js文件常用配置 在Vue 3.0中,...
    99+
    2023-03-19
    vue3.0 vue.config.js vue.config.js配置 vue.config.js文件常用配置
  • Vue CLI怎么安装配置和使用
    这篇文章主要介绍“Vue CLI怎么安装配置和使用”,在日常操作中,相信很多人在Vue CLI怎么安装配置和使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue CLI怎...
    99+
    2022-10-19
  • slf4j使用log4j的配置参数方式
    目录slf4j使用log4j的配置参数slf4j 的 maven 配置如下关于具体的配置 log4j.properties日志级别常用的输出位置格式化输出slf4j集成log4j小结...
    99+
    2022-11-12
  • Springboot之restTemplate的配置及使用方式
    目录基础配置以下为进阶配置和使用1 场景2 依赖3 配置4 使用4.1 GET请求4.2 POST请求4.3 上传文件在springboot项目中,可以直接注入RestTemplat...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作