what DVA?

Dva是基于Redux做了一层封装,对于React的state管理,有很多方案,我选择了轻量、简单的Dva。

dva 可以很方便就使用mock.js进行数据的模拟。

只需要三步,即可使用mock进行模拟数据,使用fetch进行数据的请求。

首先,我们使用dva初始化一个项目。目录的结构为:

上面画着两个mock的相关配置文件。

第一步,我们现在在mock的文件夹下面配置你需要配置的文件,

例如说,你需要模拟用户列表的数据,那么你就配置是一个user.js , 里面写相关的mock模拟数据的语法就行了。

抛个例子(我这个模板可以直接用了,自行改增删改查吧):

'use strict';

const qs = require('qs');

const mockjs = require('mockjs'); //导入mock.js的模块

const Random = mockjs.Random; //导入mock.js的随机数

// 数据持久化 保存在global的全局变量中

let tableListData = {};

if (!global.tableListData) {

const data = mockjs.mock({

'data|100': [{

'id|+1': 1,

'name': () => {

return Random.cname();

},

'mobile': /1(3[0-9]|4[57]|5[0-35-9]|7[01678]|8[0-9])\d{8}/,

'avatar': () => {

return Random.image('125x125');

},

'status|1-2': 1,

'email': () => {

return Random.email('visiondk.com');

},

'isadmin|0-1': 1,

'created_at': () => {

return Random.datetime('yyyy-MM-dd HH:mm:ss');

},

'updated_at': () => {

return Random.datetime('yyyy-MM-dd HH:mm:ss');

},

}],

page: {

total: 100,

current: 1,

},

});

tableListData = data;

global.tableListData = tableListData;

} else {

tableListData = global.tableListData;

}

module.exports = {

//post请求 /api/users/ 是拦截的地址 方法内部接受 request response对象

'GET /users' (req, res) {

const page = qs.parse(req.query);

const pageSize = page.pageSize || 10;

const currentPage = page.page || 1;

let data;

let newPage;

let newData = tableListData.data.concat();

//数据开始模拟

if (page.field) {

const d = newData.filter((item) => {

return item[page.filed].indexOf(page.keyword) > -1;

});

data = d.slice((currentPage - 1) * pageSize, currentPage * pageSize);

newPage = {

current: currentPage * 1,

total: d.length,

};

} else {

data = tableListData.data.slice((currentPage - 1) * pageSize, currentPage * pageSize);

tableListData.page.current = currentPage * 1;

newPage = {

current: tableListData.page.current,

total: tableListData.page.total,

}

}

setTimeout(() => {

res.json({ //将请求json格式返回

success: true,

data,

page: '123',

});

}, 200);

},

第二步,在  .roadhogrc.mock.js 中进行导入,以便于在dva进行加载的时候能够读到 mock 数据模拟的相关配置文件

//加载mock的数据 通过循环把在 mock 文件夹下的所有配置文件都拿到,并最后export出去

const mock = {}

require('fs').readdirSync(require('path').join(__dirname + '/mock')).forEach(function(file) {

Object.assign(mock, require('./mock/' + file))

})

module.exports = mock

第三步,就是调试了。如果是在component中发送请求,那么需要以下的步骤:

import fetch from 'dva/fetch'; //导入fetch的模块

fetch('/users',{ // 发送请求

method:'GET', //请求方式 (可以自己添加header的参数)

mode:'cors',// 避免cors攻击

credentials: 'include'

}).then(function(response) {

//打印返回的json数据

response.json().then(function(data){ //将response进行json格式化

console.log(data); //打印

});

}).catch(function(e) {

console.log("Oops, error");

});

我的例子只是把核心的代码贴出来而已。实际的项目运用中,我们可以在components的初始化,或者动作事件中进行fetch的异步请求的动作。如果对fetch的一些知识不了解的话,那请自行去深入学习,完善知识框架。

Vue+Mock.js模拟登录和表格的增删改查

有三类人不适合此篇文章: "喜欢站在道德制高点的圣母婊" -- 适合去教堂 "无理取闹的键盘侠" -- 国际新闻版块欢迎你去 "有一定基础但又喜欢逼逼 ...

node后台fetch请求数据-Hostname/IP doesn't match certificate's altnames解决方法

一.问题背景 基于express框架,node后台fetch请求数据,报错Hostname/IP doesn't match certificate's altnames..... require(' ...

React native 中使用Fetch请求数据

一.代码 import React, { Component } from 'react'; import { AppRegistry, StyleSheet, Text, View } from ' ...

Node.js模拟发起http请求从异步转同步的5种方法

使用Node.js模拟发起http请求很常用的,但是由于Node模块(原生和第三方库)提供里面的方法都是异步,对于很多场景下应用很麻烦,不如同步来的方便.下面总结了几个常见的库API从异步转同步的几种 ...

Vue笔记:使用 mock.js 模拟数据

在我们的项目实际开发过程中,后端的接口往往是较晚才会提供出来,并且还要写接口文档,如果前端的开发都要等到接口开发完成才开始就非常影响项目整体开发进度了,mock.js 的出现使前后端分离并行开发成为可 ...

mock.js 模拟数据

1. 劫持请求,返回模拟数据: 用于前后台对接前数据模拟 相比于静态json文件而言:代码完成后不必修改源文件对应的接口调用.可模拟增删改查 2.实例代码 ...

mock.js模拟ajax数据请求

在我们开发过程中存在着前端页面ui完成了,但是没有接口进行联调数据的情况,现在介绍一下用mock.js来完成数据的请求.这样在后期我们的后台接口完成后只需要更改请求的接口名字即可!前提是你的模拟字段名 ...

mock.js模拟生成假数据

mock使用方法很简单, 下面是简单的用法, 详细的用法可以看官方文档, 写的很清楚, 下面的代码直接拷贝到本地html文件, 双击打开即可生成你想要的数据 ...

axios + mock.js模拟数据实现前后端分离开发的实例代码

首先就是必须安装axios和mock.js npm install axios npm install mockjs 1. 然后在文档src中新建一个mock.js文件,如图 2. 在main.js中 ...

随机推荐

ArcGIS影像配准与空间配准

ArcGIS影像配准与空间配准 ArcGIS影像配准与空间配准 地图配准可分为影像配准和空间配准.影像配准的对象是raster图,譬如TIFF图.配准后的图可以保存为ESRI GRID, TIFF,或 ...

sql 、linq、lambda 查询语句的区别

LINQ的书写格式如下: from 临时变量 in 集合对象或数据库对象 where 条件表达式 [order by条件] select 临时变量中被查询的值 [group by 条件] Lambda ...

Huawei校招机试中的猴子吃桃问题

//============================================================================ // Name : Monkey& ...

Android之记住密码与自动登陆实现

本文主要讲述了利用sharedpreference实现记住密码与自动登陆功能 根据checkbox的状态存储用户名与密码 将结果保存在自定义的application中,成为全局变量 布局文件 < ...

代码-Weka的NaiveBayes类

package kit.weka;   import java.io.File; import weka.classifiers.CheckClassifier; import weka.classi ...

CentOS 6&period;4 64位 安装 mysql 5&period;6&period;24

下载安装包 由于官网访问及版本选择下载不太方便,使用 suho 的源进行下载 http://mirrors.sohu.com/mysql/MySQL-5.6/ 下载如下三个安装包: MySQL-ser ...

Android系统--Binder系统具体框架分析(二)Binder驱动情景分析

Android系统--Binder系统具体框架分析(二)Binder驱动情景分析 1. Binder驱动情景分析 1.1 进程间通信三要素 源 目的:handle表示"服务",即向 ...

第一个Spring 程序

一 搭建好开发环境 JDK Eclipse 等 二 下载jar包 https://commons.apache.org/logging/ https://repo.spring.io/release/ ...

类变量、实例变量--python

1.类变量.实例变量概念 类变量: 类变量就是定义在类中,但是在函数体之外的变量.通常不使用self.变量名赋值的变量.类变量通常不作为类的实例变量的,类变量对于所有实例化的对象中是公用的. 实例变量 ...

dva ajax请求,dva框架使用mock.js模拟数据 + fetch请求数据相关推荐

  1. angelajs中ajax,前端测试数据怎么利用Mock.js进行生成

    前端测试数据怎么利用Mock.js进行生成 发布时间:2020-12-14 14:17:47 来源:亿速云 阅读:108 作者:Leah 本篇文章为大家展示了前端测试数据怎么利用Mock.js进行生成 ...

  2. mock模拟接口测试 vue_Easy Mock以及Vue+Mock.js模拟数据

    Easy Mock以及Vue+Mock.js模拟数据 一.Mock.js简介 Mock.js是一个可以模拟后端数据,也可以模拟增删改查操作的js库 基础语法规范 数据模板中的每个属性由 3 部分构成: ...

  3. Vue+Mock.js模拟登录和表格的增删改查

    有三类人不适合此篇文章: "喜欢站在道德制高点的圣母婊" -- 适合去教堂 "无理取闹的键盘侠" -- 国际新闻版块欢迎你去 "有一定基础但又喜欢逼逼 ...

  4. Node.js模拟发起http请求从异步转同步的5种方法

    使用Node.js模拟发起http请求很常用的,但是由于Node模块(原生和第三方库)提供里面的方法都是异步,对于很多场景下应用很麻烦,不如同步来的方便.下面总结了几个常见的库API从异步转同步的几种 ...

  5. Vue3项目 --- Mock.js模拟数据测试

    1. npm 安装Mock.js npm install mockjs 2. Main.js中引入Mock import Mock from 'mockjs' require('./mock') cr ...

  6. 微信小程序——使用mock.js模拟数据

    一,创建目录 再根目录utils目录下面创建 WxMock.js文件和api.js文件 二,WxMock.js WxMock.js下载地址:https://github.com/webx32/WxMo ...

  7. vue@3-cli使用mock.js模拟数据.........

    第一步:项目路径下执行命令: npm install --save mockjs第二步:main.js统计目录简历mock文件夹 mock.jsconst Mock = require('mockjs ...

  8. mock.js模拟假数据

    mock使用方法很简单, 下面是简单的用法, 详细的用法可以看官方文档, 写的很清楚, 下面的代码直接拷贝到本地html文件, 双击打开即可生成你想要的数据 <!DOCTYPE html> ...

  9. php多线程模拟请求,浅谈php使用curl模拟多线程发送请求

    每个PHP文件的执行是单线程的,但是php本身也可以用一些别的技术实现多线程并发比如用php-fpm进程,这里用curl模拟多线程发送请求.php的curl多线程是通过不断调用curl_multi_e ...

最新文章

  1. CSDN下载资源+全领域电子书+程序员提升课,领取这些不香吗?
  2. hive -f 传递参数
  3. 【Python基础】python使用openpyxl操作excel
  4. DCMTK:父元素处理的测试程序
  5. 自定义线程类中实例变量与其他线程共享与不共享
  6. 原 Linux搭建SVN 服务器2
  7. intel32指令中文版
  8. DRBD 管理、故障处理部分
  9. Mac小白入门小技巧
  10. 感悟:决定一个系统走势是多因素构成,而非单一因素决定
  11. w10恢复出厂设置_笔记本电脑w10怎么恢复出厂设置
  12. c++17之结构化绑定
  13. 智齿科技宣布C轮获用友领投2.1亿战略投资
  14. 不朽的浪漫网站服务器,浪漫人族TOD专访 虫族强大让我震惊
  15. 2020最新天猫双十一自动获取喵币
  16. 智能窗帘控制(语音、时间、光、红外)
  17. 风变python培训班学费一般多少
  18. think-swoole简易使用教程--websocket
  19. c++ 反射_基于飞凌FETA40i-C核心板在光时域反射仪中的应用原理
  20. 黑鲨一代启动Android密码,黑鲨一代(BlackShark) 刷入TWRP 获取完美ROOT权限 刷机教程...

热门文章

  1. 政务服务一网通办云平台及智慧政务大数据资源中心建设方案
  2. 安恒5月赛BJDCTF3th-逆向
  3. cad指北针lisp_用CAD里的LISP画图,题目如图片,编写一程序,可在任意位置任意方向绘制指定大小的指北针。...
  4. 服务器系统壁纸,云服务器壁纸
  5. 正大国际:做期货交易的方法
  6. 中科院,量子计算机,中科院传来喜讯,中国量子技术领先世界,美:中国学者都不睡觉吗...
  7. php mail 权限,PHP mail()函数漏洞总结 · MYZ’s Blog
  8. 重温离散数学系列①之什么是证明
  9. Weblogic启动报错weblogic.management.ManagementException: Unable to obtain lock on
  10. win7有杂音----彻底解决