Mockjs

636 阅读2分钟

Mock.js简介

通过随机数据,模拟各种场景,不需要修改既有代码,就可以拦截ajax请求,从而返回模拟的响应数据

优点:

1.支持生成随机的文本,数字,布尔值,日期,邮箱,链接,图片,颜色等

2.支持扩展更多数据类型,支持自定义函数和正则

3.在已有接口文档的情况下,我们可以直接按照接口文档来开发,将相应的字段写好,在接口完成 之后,只需要改变url地址即可

4.不会涉及到跨域问题

基本使用:

 1.首先需要下载安装mockjs模块

 yarn add mockjs

   2.然后可以在scr下创建一个文件夹,用于存放模拟的数据的文件 例如 /src/mock/index.js,在这个文件中

 const Mock = require("mockjs"); let data = Mock.mock({     "data|100": [ //生成100条数据 数组         {             "shopId|+1": 1,//生成商品id,自增1             "shopMsg": "@ctitle(10)", //生成商品信息,长度为10个汉字             "shopName": "@cname",//生成商品名 , 都是中国人的名字             "shopTel": /^1(5|3|7|8)[0-9]{9}$/,//生成随机电话号             "shopAddress": "@county(true)", //随机生成地址             "shopStar|1-5": "★", //随机生成1-5个星星             "salesVolume|30-1000": 30, //随机生成商品价格 在30-1000之间             "shopLogo": "@Image('100x40','#c33', '#ffffff','小北鼻')", //生成随机图片,大小/背景色/字体颜色/文字信息             "food|7": [ //每个商品中再随机生成七个food                 {                     "foodName": "@cname", //food的名字                     "foodPic": "@Image('100x40','#c33', '#ffffff','小可爱')",//生成随机图片,大小/背景色/字体颜色/文字信息                     "foodPrice|1-100": 20,//生成1-100的随机数                     "aname|14": [                         {                              "aname": "@cname",                              "aprice|30-60": 20                          }                     ]                 }             ]         }     ] }) Mock.mock(/goods\/goodAll/, 'post', () => { //三个参数。第一个路径,第二个请求方式post/get,第三个回调,返回值     return data })

   3.模拟完数据后,需要在入口主文件 main.js中 引入这个模拟数据的文件

 import "./mock/index.js"

  4.在页面中,我们直接可以进行axios请求,(这里懒省事了,正常情况下,要把每个接口都封装到api里面,后期便于修改维护等一系列操作)  

 import axios from "axios"; ​ ​
 mounted () {         
      this.initMsg();     
}, 
methods: {  
  initMsg(){  
   axios.post("http://localhost:8080/goods/goodAll").then((res)=>{      
         console.log(res) 
  })   
  } 
}