返回顶部
首页 > 资讯 > 精选 >在react中如何使用mockjs方法
  • 567
分享到

在react中如何使用mockjs方法

2023-06-29 11:06:07 567人浏览 泡泡鱼
摘要

本篇内容主要讲解“在React中如何使用mockjs方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“在react中如何使用mockjs方法”吧!介绍mock意为“模仿”或"模拟&qu

本篇内容主要讲解“在React中如何使用mockjs方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“在react中如何使用mockjs方法”吧!

    介绍

    mock意为“模仿”或"模拟",简单来说,就是造数据,造你想要的几乎任何数据,包括api和通过api返回的数据。

    在写完项目进行自测,或者写页面需要数据 但是又不想单独开个后端,这时候就可以用mockjs来实现返回随机数据。

    安装 & 卸载 & 引入

    // 安装npm i mockjs// 卸载npm uninstall mockjs// 项目中引入import Mock from 'mockjs'

    基础语法 & 规范 

    Mock.mock

    造数据,需要使用到mock方法:

    Mock.mock(xxx)// 这里面的xxx就是要通过mock来模拟的数据

    每个被伪造的数据,都包含3部分:

    • 属性名 name

    • 生成规则 rule

    • 属性值 value

    比如:

    const data = Mock.mock({    code: '0',    msg: 'success',    'list|5': [{ name: '@name', age: '@integer(18, 25)'}]})

    这里的code , msg , list 都是属性名,其中list和msg都是字符串,list是数组

    code和msg的数据过于简单,所以生成规则在这里省略了,

    而list对应的生成规则是|5,意思是生成一个数组,里面包含5个元素

    这里的'0' , 'success' 和 [{ name: '@name', age: '@integer(18, 25)'}]就是他们各自对应的值。

    打印一下生成的结果看看:

    console.log(data){    "code": "0",    "msg": "success",    "list": [        {            "name": "Nancy Lewis",            "age": 18        },        {            "name": "Gary Wilson",            "age": 25        },        {            "name": "Shirley Gonzalez",            "age": 22        },        {            "name": "Mark Moore",            "age": 24        },        {            "name": "Richard Gonzalez",            "age": 22        }    ]}// 另外,多次打印可以看出,每次结果都是不一样的,数据是随机的。

    从上面的例子可以得知,生成规则是可选的,非必须的

    如果存在生成规则,那么属性名和生成规则之间需要用|隔开

    7种生成规则

    'name|min-max': value

    // 表示value值重复的次数,最少min次,最多max次const data = Mock.mock({    'list|1-5': ['hello-']})// 得到的结果可能是:[    "hello-",    "hello-",    "hello-",    "hello-",    "hello-"]// 也可能是:[    "hello-",    "hello-",    "hello-"]// hello-随机重复1-5次作为结果

    'name|count': value

    // value固定重复count次const data = Mock.mock({    'list|2': ['hello-']})// 得到的结果是:[    "hello-",    "hello-"]

    'name|min-max.dmin-dmax': value

    // 当value 是数字型时,生成一个浮点数,// 浮点数的整数部分大于等于 min、小于等于 max,小数部分保留 dmin 到 dmax 位。// 生成的值和初始写的value值的大小无关,value的初始值只是用来确定数据类型const data = Mock.mock({    'num1|1-100.1-3': 1})

    生成的结果可能是:

    在react中如何使用mockjs方法

    也可能是:

    在react中如何使用mockjs方法

    'name|min-max.dcount': value

    // 当value 是数字型时,生成一个浮点数,// 浮点数的整数部分大于等于 min、小于等于 max,小数部分保留dcount位。// 生成的值和初始写的value值的大小无关,value的初始值只是用来确定数据类型

    'name|count.dmin-dmax': value

    // 当value 是数字型时,生成一个浮点数,// 浮点数的整数部分等于count,小数部分保留 dmin 到 dmax 位。// 生成的值和初始写的value值的大小无关,value的初始值只是用来确定数据类型

    'name|count.dcount': value

    // 当value 是数字型时,生成一个浮点数,// 浮点数的整数部分是count,小数部分保留dcount位。// 生成的值和初始写的value值的大小无关,value的初始值只是用来确定数据类型

    'name|+step': value

    // 当value为数字时,初始值为value,每次得到的结果会自增1

    生成规则和属性值value的关系

    属性值是布尔值

    'name|1': value// 当value是true或者false时// 最终结果会返回一个布尔值,返回true的概率是1/2,返回false的概率也是1/2'name|min-max': value// 当value是一个表示布尔值的结果时,// 会随机生成一个布尔值,值为 value 的概率是 min / (min + max),// 值为 !value 的概率是 max / (min + max)

    属性值是对象 Object

    'name|count': object// 从属性值 object 中随机选取 count 个属性'name|min-max': object// 从属性值 object 中随机选取 min 到 max 个属性

    属性值是数组 Array

    'name|1': array// 从属性值 array 中随机选取 1 个元素,作为最终值。'name|+1': array// 从属性值 array 中顺序选取 1 个元素,作为最终值。'name|min-max': array// 通过重复属性值 array 生成一个新数组,重复次数大于等于 min,小于等于 max。// 'name|count': array通过重复属性值 array 生成一个新数组,重复次数为 count。

    属性值是正则表达式 RegExp

    // 根据正则表达式 regexp 反向生成可以匹配它的字符串。用于生成自定义格式的字符串Mock.mock({    'regexp1': /[a-z][A-Z][0-9]/,    'regexp2': /\w\W\s\S\d\D/,    'regexp3': /\d{5,10}/})// 结果可能是:{    "regexp1": "pJ7",    "regexp2": "F)\fp1G",    "regexp3": "561659409"}

    占位符@

    占位符 引用的是 Mock.Random 中的方法,

    这跟Vue中的v-on:click省略成@click很像。可以简单理解为Mock.Random的缩写。

    @后面跟上Mock.Random的一些固定方法,用来生成随机数据。

    用法示例:

    // 比如我们现在要随机生成一个中文人名const data = Mock.Random.cname()// 结果:// data: 赵丽

    改成占位符的方法就是:

    const data = Mock.mock('@cname')// 结果:// data:  张秀兰

    这里的cname就是Mock.Random的一个方法,表示获取随机的中文人名。

    这里有一张表格,包含了Mock.Random的方法,并进行了简单的分类:

    在react中如何使用mockjs方法

    方法名前面带c的,都是用来获取中文相关的数据的。比如@name用来生成随机的英文名,而@cname就是用来生成随机的中文名。

    另外,这些方法还可以带参数,以下有一些例子:

    import Mock from 'mockjs'let basicData = Mock.mock({    'list|1-100': [{        'id|+1': 1,        'isBoolean': '@boolean(10, 0, true)',//百分之百的true        'naturalNumber': '@natural(1, 1000)', //大于等于零的整数        'integer': '@integer(0)', //随机整数        'float': '@float(1, 100, 3, 6)', //随机浮点数,         'character': '@character("upper")', //一个随机字符        'string': '@string("lower", 5, 20)', //一串随机字符串        'range': '@range(1, 10, 2)', //一个整形数组,步长为2    }]});// console.log(basicData);let Date = Mock.mock({    'dateList|10': [{        'date': '@date',        'date-yyyy-MM-dd': '@date(yyyy-MM-dd)',        'date-yy-MM-dd': '@date(yy-MM-dd)',        'date-y-MM-dd': '@date(y-MM-dd)',        'date-y-M-d': '@date(y-M-d)',        'line-through': '------------------------------------------------',        'timessss': '@time', //随机的时间字符串,        'time-fORMat': '@time()', //指示生成的时间字符串的格式, default: 'HH: mm: ss',        'time-format-1': '@time("A HH:mm:ss")',        'time-format-2': '@time("a HH:mm:ss")',        'time-format-3': '@time("HH:mm:ss")',        'time-format-4': '@time("H:m:s")',        'datetime': '@datetime("yyyy-MM-dd A HH:mm:ss")', //返回一个随机的日期和时间字符串        'dateNow': '@now("second")' //获取当前完整时间    }]});// console.log(Date);let imageList = Mock.mock({    'imageList|5': [{        'id|+1': 1,        'img': '@image',//生成一个随机的图片地址,        'img-1': '@image("200x100", "#000", "#fff", "png", "Mock.js")', //生成一个200*100, 背景色#000,前景色#fff, 格式png, 文字mock.js的图片    }]})// console.log(imageList);let paragraph = Mock.mock({    'paragraphList|5': [{        'id|+1': 1,        'paragraph2': '@cparagraph(2)', //生成一段2句话的中文文本,        'paragraph3': '@paragraph(3)', //生成一个3句话的英文文本        'title': '@title', //随机生成一个英文标题        'ctitle': '@ctitle', //随机生成一个中文标题    }]})// console.log(paragraph);let name = Mock.mock({    'nameList|5': [{        'id|+1': 1,        'name': '@name', //英文名,        'cname': '@cname', //中文名    }]})// console.log(name);let WEBList = Mock.mock({    'webList|5': [{        'id|+1': 0,        'url': '@url("Http", "baidu.com")', //url: http://www.baidu.com        'protocol': '@protocol', //随机生成一个url协议        'domain': '@domain', //随机生成一个域名,        'email': '@email', //随机生成一个邮箱地址,        'ip': '@ip' //随机生成一个ip地址    }]})// console.log(webList);let address = Mock.mock({    'addressList|5': [{        'id|+1': 1,        'region': '@region', //生成一个大区        'province': '@province', //生成一个省份        'city': '@city', //生成一个市        'country': '@country', //一个县        'zip': '@zip', //邮政编码    }]})console.log(address)

    模拟接口

    Mock.mock( rurl, rtype, data)

    介绍以下三个参数:

    • rurl:请求路径,可以是相对路径,也可以是绝对路径

    • rtype:请求方式,比如get post put delete等

    • data:要返回的模拟数据

    举例:

    import React, {useEffect} from 'react'import Mock from 'mockjs'import axiOS from 'axios'Mock.mock('/mock/usermsg', 'get', {    code: '0',    msg: 'success',    'list|5': [{ name: '@name', age: '@integer(18, 25)'}]})const DemoMock = () => {    useEffect(async () => {        const res = await axios('/mock/usermsg')        console.log(res.data)    })    return <h4>hello react</h4>}export default DemoMock

    返回的结果:

    在react中如何使用mockjs方法

    到此,相信大家对“在react中如何使用mockjs方法”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

    --结束END--

    本文标题: 在react中如何使用mockjs方法

    本文链接: https://lsjlt.com/news/324433.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • 在react中如何使用mockjs方法
      本篇内容主要讲解“在react中如何使用mockjs方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“在react中如何使用mockjs方法”吧!介绍mock意为“模仿”或"模拟&qu...
      99+
      2023-06-29
    • 在react中使用mockjs的方法你知道吗
      目录介绍安装&卸载&引入基础语法&规范 7种生成规则生成规则和属性值value的关系占位符@模拟接口总结介绍 mock意为“模仿&rdq...
      99+
      2024-04-02
    • react如何在React html中使用
      本篇文章为大家展示了react如何在React html中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。基本使用<!DOCTYPE html><html l...
      99+
      2023-06-14
    • react navigation方法如何使用
      本篇内容介绍了“react navigation方法如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!react navigation会...
      99+
      2023-07-04
    • react children方法如何使用
      这篇文章主要介绍“react children方法如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“react children方法如何使用”文章能帮助大家解决问题。react children...
      99+
      2023-07-04
    • 在React中如何使用Vuex
      这篇文章给大家分享的是有关在React中如何使用Vuex的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。如何使用一:创建Store实例:与vuex一样,使用单一状态树(一个对象)包...
      99+
      2024-04-02
    • hook如何在react中使用
      今天就跟大家聊聊有关hook如何在react中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、什么是hook?react hook是react 16.8推出的方法,能够让函数式...
      99+
      2023-06-14
    • setState如何在react 中使用
      setState如何在react 中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。setState是同步还是异步自定义合成事件和react钩子函数中异步更新state以...
      99+
      2023-06-14
    • vue中使用mockjs配置和使用方式
      目录mockjs配置和使用方式需求步骤mock使用及mock无侵入的解决什么是mock?为什么要用到mock?如何使用mock?mock无侵入式配置mockjs配置和使用方式 需求 ...
      99+
      2024-04-02
    • react中map方法如何用
      本篇内容主要讲解“react中map方法如何用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“react中map方法如何用”吧! 在r...
      99+
      2024-04-02
    • react的dispatch方法如何使用
      这篇文章主要介绍“react的dispatch方法如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“react的dispatch方法如何使用”文章能帮助大家解决问题。react的dispatch...
      99+
      2023-07-04
    • 如何在React项目中使用AntDesign
      目录0.前言1.AntDesign是什么?2.AntDesign如何使用?3.如何具体使用AntDdesign的组件3-1.如何使用 antd 的Table组件3-2.如何使用 an...
      99+
      2024-04-02
    • 在HTML页面中如何使用React
      这篇文章主要介绍了在HTML页面中如何使用React的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇在HTML页面中如何使用React文章都会有所收获,下面我们一起来看看吧。该方案使用场景:在html页面中使用r...
      99+
      2023-06-29
    • 如何在React中直接使用Redux
      React中使用Redux 开始之前需要强调一下,redux和react没有直接的关系,你完全可以在React, Angular, Ember, jQuery, or vanilla...
      99+
      2022-11-13
      React使用Redux React Redux用法
    • 如何在React框架中使用SpreadJS
      如何在React框架中使用SpreadJS,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。第1步:设置HTML5页面首先,我们需要在页面中添加对React的引用:...
      99+
      2023-06-04
    • React中使用Mobx的方法
      目录一、Mobx前端状态管理框架 基础概念?1. 什么是Mobx2. 什么是状态管理?3. 为什么需要状态管理?状态管理的一般思想(Flux)二、mobx的用法1. 安装 mobx2...
      99+
      2023-02-03
      React使用Mobx React使用Mobx
    • 在 React 项目中全量使用 Hooks的方法
      目录前言React HooksuseStateuseReducer基础用法进阶用法useContextuseEffectuseLayoutEffectuseRefuseImperat...
      99+
      2022-11-13
      React使用 Hooks  React 项目使用 Hooks
    • 在 React Native 中使用 CSS Modules的配置方法
      目录安装依赖和配置使用示例有些前端工程师希望也能像开发 web 应用那样,使用 CSS Modules 来开发 React Native。本文将介绍如何在 React Native ...
      99+
      2022-11-13
      React Native使用 CSS Modules React  CSS Modules
    • 在React、Vue项目中如何使用SVG
      这篇文章将为大家详细讲解有关在React、Vue项目中如何使用SVG,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在一些现代的扁平化设计网站,特别是移动端网站,经常会包含...
      99+
      2024-04-02
    • 如何在pytorch中使用forward 方法
      这篇文章将为大家详细讲解有关如何在pytorch中使用forward 方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。forward 的使用class Module(nn.Mod...
      99+
      2023-06-06
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作