Vue项目中mockjs简单应用

本文介绍如何利用Mock.js和Axios在前端项目中设置和模拟API数据,包括安装配置、生成随机数据、设置模拟接口及测试验证过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、安装引入:
需要安装mockjs和axios,

npm install mockjs --save
npm install axios --save

在main.js文件中引入mockjs

require('./mock.js');

2、设置模拟数据:
Src目录下建立Mock.js文件,根据数据模板生成随机数据,具体需要的数据可依据官方文档自行设置。
Eg:

import Mock from 'mockjs';

const Random = Mock.Random;// 工具类,用于生成各种随机数据

let data = [];

let size = [
  '400x200', '500x100', '200x300', '100x10', '600x100'
];// 生成随机图像尺寸选择

for (let i = 0; i < 5; i++) {
  let template = {
    'String': Mock.mock({
      "随机重复★|1-10": "★"
    }),
    'Boolean': Random.boolean,
    'Natural': Random.natural(1, 10),
    'Integer': Random.integer(1, 100),
    'Float': Random.float(0, 100, 0, 5),
    'Character': Random.character(),// 生成单个随机字符
    'Date': Random.date(),
    'Image': Random.image(Random.size, '#02adea', 'hello'),//生成随机图像
    'Paragraph': Random.paragraph(2, 5),// 生成2到5个句子的文本
    'Address': Random.province(), // 随机省市
    'Url': Random.url(),
    'TestJson|5': [{
      'key|+1': 1,
      'title|1': ['不想换电脑', '随便写写', '我编不出来了', '我好难', '电脑还卡'],
      'content|1': ['氪不改命', '抽卡沉船', '碎片2=1等一年', '一单下去一个水花都没有'],
      'option|1': ['我好惨', '我真的太惨了', '行了我知道没人比我更惨了']
    }]
  }
  data.push(template);
}

Mock.mock('/data/index', 'post', data)
// 当拦截到匹配 rurl 和 rtype 的 Ajax 请求时,将根据数据模板 template 生成模拟数据,并作为响应数据返回。

3、src目录下建立axios文件夹,创建api.js文件,模拟接口。

import axios from 'axios'
import { resolve } from 'path';

axios.defaults.headers.post['Content-Type']='application/x-www-from-urlencoded';
// 窗体数据被编码为名称/值对,标准编码格式

// 请求拦截器
axios.interceptors.request.use(function(config){
    return config;
},function(error){
    return Promise.reject(error);
})

// 响应拦截器
axios.interceptors.response.use(function(response){
    return response;
},function(error){
    return Promise.reject(error);
})

export function fetch(url,params){
    return new Promise((resolve,reject)=>{
        axios.post(url,params)
        .then(response => {
            resolve(response.data)
        })
        .catch((error)=>{
            reject(error);
        })
    })
}

export default{
    mockdata(url,params){
        return fetch(url,params);
    }
}

4、测试数据是否模拟成功。建立一个vue文件,router.js文件中注册后简单显示控制台数据(篇幅限制,只挑选了了一部分输出)
在这里插入图片描述
注意json报文未作解析处理,页面显示undefined,控制台可查看具体值,如果需要解析,遍历即可,核心代码如下

methods: {
getdata: function () {
api.mockdata(’/data/index’)
.then(res => {
var data = JSON.stringify(res);
this.dataShow = eval("(" + data + “)”);
console.log(this.dataShow);
var mydata = this.dataShow;
mydata.forEach(item => {
if (Array.isArray(item.TestJson)) {
this.myJson = item.TestJson;
}
});
console.log(this.myJson);
})
}
}

5、总结:
Mock.js生成随机数据,拦截Ajax请求,能够在接口没出来时非常方便的模拟数据,进行简单的测试。
demo下载地址如下:https://download.csdn.net/download/qq_36680300/11597799

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值