玩转 Mockjs,前端也能跑的很溜

本文介绍了如何在编程中使用数据占位符生成随机值,包括对象、数组、函数和正则表达式的应用。并通过API接口示例展示了如何结合这些技术。同时提到了一份前端开发学习资料,包含了各种层次的学习资源。
摘要由CSDN通过智能技术生成

随机生成一个布尔值,

值为 value 的概率是 min / (min + max),

值为 !value 的概率是 max / (min + max)。

//使用

‘like|1-5’: true

生成 true 的 概率为 1/6 。生成 false 的概率为 5/6

1.4、属性值是对象 Object

生成一个指定属性个数的对象。

‘obj|num’: object

从属性值 object 中,随机选取 num 个属性。

//使用

‘obj|2’: {

a: ‘1’,

b: ‘2’,

c: ‘3’

}

运行结果可能为:

{a: “3”, b: “2”}

{c: “3”, b: “2”}

{a: “3”, c: “2”}

生成一个属性个数随机的对象。

‘obj|min-max’: object

从 object 中 随机选取 min 到 max 个属性,生成一个对象。

//使用

‘obj|1-2’: {

a: ‘1’,

b: ‘2’,

c: ‘3’

}

运行结果可能为:

{a: “3”}

{b: “3”}

{c: “3”}

{a: “3”, b: “2”}

{c: “3”, b: “2”}

{a: “3”, c: “2”}

1.5、属性值是数组 Array

取数组中某个元素作为结果。

‘arr|1’:array

从属性值 array 中随机选取 1 个元素作为结果返回

//使用

‘arr|1’:[1,2,3]

运行结果为:1、2、3 三种结果

生成新数组。

‘arr|min-max’: array

通过重复 array 的元素生成新数组,重复次数 min 到 max 。

//使用

‘arr|1-2’: [ 1,2,3 ]

运行结果为:[ 1,2,3 ] 或 [ 1,2,3,1,2,3 ]

‘arr|num’: array

通过重复 array 的元素生成新数组,重复次数 num 次 。

//使用

‘arr|2’: [ 1,2,3 ]

运行结果为: [ 1,2,3,1,2,3 ]

1.6、属性值是函数 Function

‘name’:function

function 返回值作为最终的属性值。

//使用

‘name’: ()=>{

return ‘web learn’

}

运行结果为 web learn

在数据占位符中,属性值是函数有重要的意义。待会会重点解释。

1.7、属性值是正则 RegExp

‘name’: regexp

根据正则表达式 regexp 反向生成可以匹配的字符串。用于生成自定义格式的字符串

//使用

‘reg’: /[a-zA-Z0-9]2/

生成大小写字母和数字任意组成的长度为 2 的字符串

‘reg’😕\d{5,10}/

生成任意的 5 到 10 位的数字字符串

二、数据占位符定义规范

===========

数据占位符只是在属性字符串中占个位置,并不会出现在最终的属性值中。

使用格式:

@占位符

@占位符(参数 [, 参数])

//使用

‘name’: “@name”,

生成英文名,如:Edward Rodriguez

//带有参数

‘first’:“@name(middle)”,

生成带有中间名的英文名 。如:Ruth Paul Robinson

‘name’: “@cname”,

生成中文名

注意:

  • 用 @ 来标识后边的字符串是标识符。

  • 占位符引用的都是 mock.Random 中的方法。

  • 如果需要扩展自定义占位符,可使用 Mock.Random.extend()。

  • 占位符也可以引用 “数据模板” 中的内容。

  • 占位符优先引用数据模板中的属性。

  • 支持相对和绝对路径。

Mock.mock(‘@string(“number”, 5)’)

生成一个五位数的字符串

Mock.mock(‘@color’)

生成随机的颜色

//等同于

Random.color()

三、使用举例

======

创建一个 api 接口,返回一个随机生成的数组:

export default [

{

url: “/api/list”,

method: “post”,

response: ({ url, body }) => {

// body 是post方法时传入的数据

// url 是请求接口,get方法时,也包含传递的参数

return {

code: 200,

message: “ok”,

//生成一个数组

// 长度介于 10 到 20 之间

‘list|10-20’: [{

name:‘@cname’ //生成中文名

}]

};

}

}

]

占位符引用的都是 Mock.random 内的方法,所以我们可以把上述代码更改为:

‘list|10-20’: [{

name:Random.cname() //生成中文名

}]

此时我们再查阅的时候,就发现生成的数组内,名字都是一模一样的。如果我们想生成不一样的姓名,该如何解决呢?

解决办法:把属性值更改为函数,将函数的返回值作为最终结果。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

由于篇幅限制,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!有需要的程序猿(媛)可以帮忙点赞+点击【学习资料】即可领取!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

由于篇幅限制,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!有需要的程序猿(媛)可以帮忙点赞+点击【学习资料】即可领取!

[外链图片转存中…(img-D1bkXOW8-1713370939806)]

[外链图片转存中…(img-BnQTHJNs-1713370939806)]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值