网站首页 > 教程分享 正文
官方资料
官网:http://mockjs.com/
代码:https://github.com/nuysoft/Mock/tree/refactoring
文档:https://github.com/nuysoft/Mock/wiki
为什么使用Mock.js
Mock.js 是用于生成随机数据的,拦截 Ajax 请求。通过拦截 Ajax 请求,根据数据模板生成并返回模拟数据,让前端工程师独立于后端进行开发。
Mock.js 原理
重写了XMLHttpRequest,属于前端JS拦截,浏览器并没有发出请求,Mock.js实现拦截,是模拟了XMLHttpRequest对象。重写open、send等方法,方法调用时,只是普通函数的调用,不会发送真正的请求。ajax请求发生时,请求根本没有发出,只是调用了几个自己写的普通函数,得到了返回数据而已。
不存在跨域问题,因为运行在浏览器上,浏览器并没有发出请求,不会违背浏览器的跨域策略,跨域指的是浏览器不能执行其他网站的脚本,它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制。
正式版本请删除Mock.js。
Mock.js使用
首先安装
npm install mockjs --save / yarn add mockjs --save
使用mockjs模拟数据并开发接口
//新建一个mockApi.js模块 来保存我们模拟的接口
var Mock = require('mockjs') // 导入mockjs
// 模拟一个列表数据
var arr = Mock.mock({
"list|4-10": [ // 生成一个 length是 4~10之间的数组
{
"name": "@first", // @first用来生成名字
"age|12-50": 12, // 生成一个 12-50之间的整数
"id|+1": 1 // 生成的id每次递增1
}
]
})
// 获取列表数据的接口 第一个参数表示自定义的接口地址 第二个参数表示自定义的请求方法
// 第三个参数是回调函数,定义返回的数据
Mock.mock('http://www.aaa.com', 'get', () => {
return arr
})
导入接口
//在main.js中导入定义好的mockApi模块
require('mockApi文件的地址')
使用定义好的接口
//在任意vue文件中 当然axios如果自己已经定义 请使用自己的 这里只做演示用
import axios from 'axios'
export default {
created() {
axios.get('http://www.aaa.com').then(res => {
// 这里的res就是mock模拟的接口返回的数据
})
}
}
参考链接:
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest
https://blog.csdn.net/qq_40409143/article/details/115289315
https://blog.csdn.net/weixin_44427998/article/details/115541145
猜你喜欢
- 2024-12-25 2022 Java 企业面试题汇总 最新java面试
- 2024-12-25 搜索引擎的工作原理图解 搜索引擎的工作原理分为哪五步
- 2024-12-25 浅谈前后端交互的基本原理 浅谈前后端交互的基本原理是什么
- 2024-12-25 websocket连接太多导致服务器卡顿怎么办?一招轻松实现横向扩展
- 2024-12-25 编写个人的Ajax:感受前端异步世界的魅力
- 2024-12-25 爬虫原理和流程 爬虫教程是什么
- 2024-12-25 CSRF原理及解决方案 csrf工作原理
- 2024-12-25 vue - Vue中的ajax vue中使用ajax
- 2024-12-25 看完让你彻底理解 WebSocket 原理,附完整的实战代码(包含前端和后端)
- 2024-12-25 看完让你彻底搞懂Websocket原理 websocket干嘛的
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)