最新记录vue项目造开发环境用的模拟数据mockjs过程详解有图,2024前端进阶新篇章

最后

我可以将最近整理的前端面试题分享出来,其中包含HTML、CSS、JavaScript、服务端与网络、Vue、浏览器、数据结构与算法等等,还在持续整理更新中,希望大家都能找到心仪的工作。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

篇幅有限,仅展示部分截图:

vue项目中mock.js的使用及基本用法 mockjs模拟新闻数据

在刚才的基础上

mock.js

// import mock from ‘mockjs’

// mock.js

// 引入mockjs

const Mock = require(‘mockjs’)

// 获取 mock.Random 对象

const Random = Mock.Random

// mock新闻数据,包括新闻标题title、内容content、创建时间createdTime

const produceNewsData = function () {

let newsList = []

for (let i = 0; i < 20; i++) {

let newNewsObject = {

title: Random.ctitle(), // Random.ctitle( min, max ) 随机产生一个中文标题,长度默认在3-7之间

content: Random.cparagraph(), // Random.cparagraph(min, max) 随机生成一个中文段落,段落里的句子个数默认3-7个

createdTime: Random.date() // Random.date()指示生成的日期字符串的格式,默认为yyyy-MM-dd;

}

newsList.push(newNewsObject)

}

return newsList

}

// 请求该url,就可以返回newsList

Mock.mock(‘/mock/news’, produceNewsData) // 后面讲这个api的使用细节

app.vue

// 挂载的时候获取新闻列表

mounted() {

this.axios.get(‘/mock/news’).then(res => { // url即在mock.js中定义的

console.log(res.data) // 打印一下响应数据

})

},

运行效果:

在这里插入图片描述

商品有关

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

})

在这里插入图片描述

2.25

这里最重要的是仿照这个写一个和如下图接口类似的数据

在这里插入图片描述

// 商品

let shopdata = Mock.mock({

‘status’: 200,

‘msg’: ‘’,

‘data|20’: [ // 生成20条数据 数组

{

‘id|+1’: 1, // 生成商品id,自增1

‘name’: ‘@cname’, // 生成商品名 , 都是中国人的名字

‘price|30-1000’: 30, // 随机生成商品价格 在30-1000之间

‘description’: ‘@ctitle(10)’, // 生成商品信息,长度为10个汉字

‘type|1’: [ ‘文创’, ‘航鲜’, ‘旅游’ ],

‘thumbUrls’: [ ‘@Image(‘40x40‘,‘#c33‘)’, ‘@Image(‘40x40‘,‘#c33‘)’, ‘@Image(‘40x40‘,‘#c33‘)’, ‘@Image(‘40x40‘,‘#c33‘)’ ],

‘isfree|1’: [0, 1] // 0收费 1免费

}

]

})

// 三个参数。第一个路径,第二个请求方式post/get,第三个回调,返回值

Mock.mock(‘/api/news/list’, ‘get’, () => { return shopdata })

任意.vue文件

// 挂载的时候获取新闻列表

mounted() {

this.axios.get(‘/api/item/list’).then(res => { // url即在mock.js中定义的

console.log(res.data) // 打印一下响应数据

})

},

输出结果

在这里插入图片描述


mockjs语法学习


数组随机三选一

Mock.mock({

“array|1”: [

“AMD”,

“CMD”,

“UMD”

]

})

打印

{

“array”: “CMD”

}

希望把这个数据更新到页面显示出来

在这里插入图片描述

出现的问题:上面的mounted可以打印出来数据,底下的这个不可以

早上写了一下游戏的模拟数据,本想把游戏和视频的模拟数据写好了显示到页面

然后就一直报错

在这里插入图片描述

我认为这个错可能和props传值有关,因为获取不到数据所以报错了。所以我放弃这个转战去显示shop的数据,因为这个页面还没怎么写完所以比较好改动

然后我就尝试了一下把接口写进了created里面

在这里插入图片描述

结果:

在这里插入图片描述

看来我猜的没错,是因为mockjs不识别传过去的参数,就没拦截

遇到的问题

使用 Mock.mock(’/api/item/list’, ‘get’, () => { return shopdata }) 的时候,它只会拦截url等于/api/item/list 的请求,而对于带参数的请求,如/api/item/list?type=文创,因为不等于/api/item/list 就拦截不到。

在这里插入图片描述

2.28

那就解决一下Mockjs如何拦截带参数的GET请求的问题

Mock.mock

对象篇

模块化编程-自研模块加载器

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值