Mock 之搭建本地 MockJs
Mock 之搭建本地 MockJs
一、目的
模拟后端接口
二、发请求
1. install
npm install axios
2. 配置
src/utils/request.js
import axios from "axios"; // axios 导入包
const service = axios.create({}); // axios 简单配置
// /api/user/id token
service.interceptors.request.use((config) => {
return config;
}); // axios 请求拦截
service.interceptors.response.use((response) => {
const { data } = response;
// if (data.status == 200) {
// } else if (data.status == 403) {
// }
return data;
}); // axios响应拦截
export default service;
3. 对接口发起请求
src/api/index.js
import request from "@/utils/request";
export const getUsers = () =>
request({
url: "/api/users",
method: "get",
});
- axios 发起请求的代码都维护在 api 下。
三、Mock 模拟响应
1. install
npm install mockjs
2. 配置
src/mock/index.js
import Mock from "mockjs";
// example 相关
Mock.mock("/api/users", "get", function () {
return Mock.mock({
status: "200",
msg: "请求成功",
"data|3": [
{
name: "@cname", // Mock.Random.cname(),
age: "@integer(20,50)",
},
],
});
});
3. 把 mock 导入 main.js
导入才会执行,数据才会成功。
main.js
import "@/mock";
四、请求成功且 mock 成功
1. About.vue
src/views/About.vue
<template>
<!-- axios & mock-验证 -->
<div v-for="(item) in list" :key="item.name">
<span>{{item.name}}</span>
<span>{{item.age}}</span>
</div>
</template>
<script>
import { getUsers } from '@/api'
import { onMounted, reactive, toRefs } from 'vue'
export default {
setup(){
const data = reactive({
list: []
})
onMounted(()=>{
getUsers().then(res=>{
console.log(res)
data.list = res.data
})
})
const dataAsRefs = toRefs(data)
return dataAsRefs
}
}
</script>
五、优化 mock 代码
1. example 模块化
src/mock/example.js
import Mock from "mockjs";
export default {
getUsers: () => {
return Mock.mock({
status: "200",
msg: "请求成功",
"data|3": [
{
name: "@cname", // Mock.Random.cname(),
age: "@integer(20,50)",
},
],
});
},
};
2. mock 入口文件配置
src/mock/index.js
import Mock from "mockjs";
import example from "./example";
// example 相关
Mock.mock("/api/users", "get", example.getUsers);
export default Mock;
六、实际开发注意事项
1. 配置 baseURL 导致错误:
如果 axios.create({...}) 配置了 baseURL ,上一部分代码为:
src/mock/index.js
import GlobalUrl "@/request/巴啦啦小魔仙"
import Mock from "mockjs";
import example from "./example";
Mock.mock(GlobalUrl+"/api/users", "get", example.getUsers);
export default Mock;
Mock 之搭建本地 MockJs的更多相关文章
- 使用node.js + json-server + mock.js 搭建本地开发mock数据服务
在开发过程中,前后端不论是否分离,接口多半是滞后于页面开发的.所以建立一个REST风格的API接口,给前端页面提供虚拟的数据,是非常有必要的.对比过多种mock工具后,我最终选择了使用 json se ...
- json server的简单使用(附:使用nodejs快速搭建本地服务器)
作为前端开发人员,经常需要模拟后台数据,我们称之为mock.通常的方式为自己搭建一个服务器,返回我们想要的数据.json server 作为工具,因为它足够简单,写少量数据,即可使用. 安装 首先需要 ...
- CentOS6.5使用createrepo搭建本地源
本地搭建本地yum源采用的rpm全部来自CentOS-6.5-bin-DVD1&DVD2; 我的是在虚拟机环境安装,先检查我的操作系统版本: 1 2 3 4 [adam@ultraera ~] ...
- Dnsmasq安装与配置-搭建本地DNS服务器 更干净更快无广告DNS解析
默认的情况下,我们平时上网用的本地DNS服务器都是使用电信或者联通的,但是这样也导致了不少的问题,首当其冲的就是上网时经常莫名地弹出广告,或者莫名的流量被消耗掉导致网速变慢.其次是部分网站域名不能正常 ...
- iOS开发网络篇—搭建本地服务器
iOS开发网络篇—搭建本地服务器 一.简单说明 说明:提前下载好相关软件,且安装目录最好安装在全英文路径下.如果路径有中文名,那么可能会出现一些莫名其妙的问题. 提示:提前准备好的软件 apache- ...
- [转]World Wind Java开发之四——搭建本地WMS服务器
在提供地理信息系统客户端时,NASA还为用户提供了开源的WMS Server 服务器应用:World Wind WMS Server.利用这个应用,我们可以架设自己的WMS服务并使用自己的数据(也支持 ...
- 使用eclipse+tomcat搭建本地环境
项目开发工具很多,这里简单介绍下使用eclipse+tomcat如何搭建本地环境. 安装开发工具如下: 1. jdk的安装参考 下载地址:http://pan.baidu.com/s/1sj9rVYX ...
- 在linux上搭建本地yum源
准备yum仓库的光盘镜像IOS文件: 设置光驱加载本地磁盘的yum仓库的光盘镜像文件: 在linux的命令行输入setup命令打开设置窗口,选择"System Service": ...
- IIS搭建本地服务器,花生壳实现外网通过域名访问网站
配置服务器 作为一个青年,没有实力,做不出标图所示的服务器. 作为一个学生,买不起服务器 作为一个小孩,买不起域名 但别忘了 作为一个平民玩家,只要有耐心 装备迟早会做出来的 (注:感觉有钱与没钱还是 ...
随机推荐
- 顺利通过EMC实验(20)
- 3.3转1.8V(电平转换)
- 用vue开发一个猫眼电影web app
前言:之前一直在学习原生的javascript,但是无奈功力太浅,学了很长时候也只能写一些简单的小demo,知道遇见了vue,一切都变了,他的双向绑定和组件化思想让我迅速的爱上了他,可是光学不练是没有 ...
- ES6-11学习笔记--Symbol
Symbol:一种新的原始数据类型 声明方式: let s1 = Symbol() let s2 = Symbol() console.log(s1); // Symbol() console.l ...
- getHibernateTemplate出现的所有find方法的总结
文章转自:http://www.cnblogs.com/DarrenChan/p/5528194.html 一.find(String queryString); 示例:this.getHiberna ...
- 【代码大全2 学习笔记】ADT 抽象与封装
ADT abstract data type 抽象数据类型 要理解面向对象编程,就要先理解ADT这个概念.不懂ADT的程序员开发出来的类只是名义上的"类"而已--只是单纯的把一些相 ...
- 走进JUC的世界
概念 同步锁:synchronized.Lock区别 1.synchronized是不需要进行手动解锁 2.synchronized可以锁方法.锁同步代码块 3.synchronized是Java自带 ...
- 变量 数据类型 条件if语句
python是解释型 弱类型编程语言; "优雅", "明确", "简单"; 开发效率非常高; 可移植性; 可扩展性; 可嵌入型. ...
- 状态机引擎在vivo营销自动化中的深度实践 | 引擎篇02
本文是<vivo营销自动化技术解密>的第3篇文章,分析了营销自动化业务背景和状态机引入原因.状态机的三种基本实现方式,同时介绍了几种业界流行的开源状态机框架实现和特点,以及在项目开发过程中 ...
- SpringMVC初学习
# SpringMVC快速入门 @[TOC](文章目录) --- # 前言 `提示:这里可以添加本文要记录的大概内容:` 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习 ...