使用mockjs模拟数据

一、安装

简单粗暴
npm install mockjs

二、引入

CommonJS引入

let Mock = require('mockjs')
let userInfo = Mock.mock({data: {responseCode: 200,responseMessage: 'success',userMessage: {name: "@cname",email: "@email",msg: '@cparagraph(2)'}}
})

或者ES6的引入方式

import Mock from 'mockjs'

三、使用

3.1 单独写一个mockData.js文件

mockData.js

let Mock = require('mockjs')
let userInfo = Mock.mock({data: {responseCode: 200,responseMessage: 'success',userMessage: {name: "@cname",email: "@email",msg: '@cparagraph(2)'}}
})let mockData = {userInfo: userInfo
}export default mockData

在页面中import数据使用

3.2 使用vuex去控制是否使用mockData.js的数据

store.js

import Vue from 'vue'
import Vuex from 'vuex'Vue.use(Vuex);const state = {//使用模拟数据, 只是开发时使用, 如果不是开发时, 请务必设置为falseuseMock: true
}export default new Vuex.Store({state
})

HelloWorld.vue

  created() {if (this.$store.state.useMock) {//使用延时器模拟异步window.setTimeout(() => {let arr = [];arr.push(mockData.userInfo.data.userMessage);this.tableData = arrconsole.log(mockData);//业务逻辑}, 1000);return;}// 若不使用刚刚mockData.js中的数据,走下面这个方式,发起请求axios.get("http://localhost:8090/test.action").then((res) => {console.log(res)this.tableData = res.data.userInfo}).catch(function(error) {console.log(error)})},

3.3 express+mockjs写一个后台

前端的代码进入联调阶段只需要修改一个basePath,所有的接口名字都可以和约定好的路径保持一致,可以测试post请求,模拟网络环境
先装expressnpm install express

MockServer.js

let express = require('express');   //引入express
let Mock = require('mockjs');       //引入mocklet app = express();        //实例化express/*为app添加中间件处理跨域请求*/
app.use(function(req, res, next) {res.header("Access-Control-Allow-Origin", "*");res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');res.header("Access-Control-Allow-Headers", "X-Requested-With");res.header('Access-Control-Allow-Headers', 'Content-Type');next();
});app.all('/test.action', function(req, res) { //指定路径res.json(Mock.mock({"status": 200,"userInfo|10": [{name: "@cname",email: "@email",msg: '@cparagraph(2)'}]}));
});app.listen('8090', () => {console.log('监听端口 8090')
})

package.json

  "scripts": {"serve": "vue-cli-service serve","build": "vue-cli-service build","lint": "vue-cli-service lint","mock": "node ./src/components/MockServer" 这里路径要写对},

这样就可以在根目录下使用npm run mock来启动后台了,在http://localhost:8090/test.action看到模拟的数据
在这里插入图片描述
前端页面显示
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251286.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

angular --- ngDialog关闭当前层

今天做项目,使用ngDialog 弹出了一层,并且在弹出层上又弹出了第二层. 现在想点击确定按钮关闭第二层. 使用以前的ngDialog.close()会关闭掉全部ngDialog.open方法弹出来的层. 在网上查了一堆,找了好多,最后发现就一句话.$scope.closeThisDialog(); 注意, 要在controller:中传递…

lodash源码分析之compact中的遍历

小时候, 乡愁是一枚小小的邮票, 我在这头, 母亲在那头。 长大后,乡愁是一张窄窄的船票, 我在这头, 新娘在那头。 后来啊, 乡愁是一方矮矮的坟墓, 我在外头, 母亲在里头。…

[HAOI2008]移动玩具

这又是一道神奇的搜索题。。。只要记录每种状态。。。然后暴力判断这种状态往后一步的情况。。。 广搜出最优解即可。。。 呆码&#xff1a; #include<iostream> #include<cstdio> #include<queue> #include<cstring> using namespace std;int dx[5]{0…

javascript --- Sortable一个拖拽的接口

最近项目里面要实现需要实现一个拖拽功能,自己实现很麻烦,就在网上找到了一个封装好的sortable函数,github(https://github.com/SortableJS/Sortable). 首先是依赖的引入:(也可以自己下载源代码导入,方式很多呢) <body><!-- Latest compiled and minified CSS -->…

个人发展战略6天课

第一课 冰山模型 【知道自己为什么会不喜欢一份工作】 衡量和一个岗位是否匹配、匹配程度如何 从上到下的要素 知识技能&#xff08;30%&#xff09;特定领域 - 可以后天学习的&#xff0c;显性的、容易看出来的 和工作的关系&#xff1a; 工作中有陌生的内容&#xff0c;每天…

《Web全栈工程师的自我修养》

1. 什么是全栈工程师 Full-Stack Engineer Facaebook只招全栈工程师&#xff1f; Web开发流程 产品经理-->交互设计-->视觉设计-->开发&#xff08;前端、后端&#xff09;-->测试-->发布 流水线的优势 “各司其职”的弊端 工程师职责不清导致效率低工程师缺乏主…

div设置overflow-scroll滚动之后,jq获取其子元素的offset.top出现问题。

先上个图&#xff1a; 布局很简单&#xff0c;左右超过屏幕的部分自行滚动。 1. html <div class"ce-container"><div class"ce-leftBox">//左边的内容</div><div class"ce-rightBox">//右边的内容 </div…

javascript --- 利用Sortable实现一个可视化公式编辑器

Sortable的依赖引入和简单使用参见:https://blog.csdn.net/piano9425/article/details/90437182 先简单的介绍一下可视化公式编辑器的功能(样式没有调,毕竟每个人的需求都不一样): 首先会有2个需要计算的(我称为操作数)A_XiangRaoZuWenSheng和AYKZQ_CS,以及两个操作符ADD(加法…

使用uni-app搭建微信小程序

0 问题待解决 import { } 与否为什么要封装对齐问题每次重启项目&#xff0c;sitemap就会消失动态修改标题失效图片问题多多 &#xff1a;高度自适应 改成image固定高度&#xff0c;mode&#xff1a;aspectFill微信小程序文档b站视频链接后端接口文档 一、知识点 uni-app 是…

HttpTomcat

本节内容&#xff1a; Http协议Tomcat服务器下面开始的一系列内容都是JavaEE的内容&#xff0c;主要的内容见下图。JavaEE主要是做服务器端开发。 JavaEE全部规范&#xff1a;有13门技术&#xff0c;主要做web开发的需要学习servlet和jsp。其他技术&#xff0c;像EJB、 JNDI、J…

python---线程与进程

一 线程 1.1 概述 线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中&#xff0c;是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流&#xff0c;一个进程中可以并发多个线程&#xff0c;每条线程并行执行不同的任务。 Threading用于提供线程相关…

jquery常见操作分享

参考: https://www.cnblogs.com/eager/p/7133270.html

es 插件

类 若 实现NativeScriptFactory接口。A factory to create instances of either {link ExecutableScript} or {link SearchScript} 只是一个工厂类&#xff0c;仍需要 创建 上面二者之一。实际中 需 创建 类 继承 SearchScript接口的实现类AbstractSearchScript 的 子类 Abstra…

使用uni-app报错this.setData is not a function

一、报错 出现this.setData is not a function报错的绝大多数情况是&#xff0c;在回调时&#xff0c;this指向作用域为当前异步方法所在的对象&#xff0c;详见微信小程序异常处理——this.setData is not a function报错处理 二、排查原因 但我并没有在回调中使用this.set…

搭建SpringBoot服务器,在公司内网中使用

搭建SpringBoot服务器&#xff0c;在公司内网中使用。 学习了&#xff1a;https://blog.csdn.net/z3881006/article/details/78902231 就是一个程序&#xff0c;托管于github&#xff1b;https://github.com/spring-io/initializr 转载于:https://www.cnblogs.com/stono/p/9301…

javascrpt --- 使用jquery添加dom元素和Angular ng-repeat生成select性能比较

今天用两种方法实现了动态的给select添加option的功能. 第一种是用jquery. // html <select id"drag-pointList"></select> // js $(#drag-pointList).children(option).remove(); // 清空之前的option let list res.data.list ; // res是ajax请…

任何时候,写下一个类,一定要有三个函数

1、默认构造函数 2、拷贝构造函数 3、虚 析构函数转载于:https://www.cnblogs.com/buddho/p/8076165.html

【C语言及程序设计】项目2-15:模块化的简单银行系统设计

问题描述&#xff1a; https://edu.csdn.net/course/play/456/4808 // 银行系统.cpp: 定义控制台应用程序的入口点。 //#include "stdafx.h" #include <stdlib.h> #pragma warning (disable: 4996)int PassTest(); void ibalance(); void withdraw(); void de…

jquery --- 使用when方法等待2个异步事件结束后执行某一个函数.

$.when(promise1, promise2) .done(function(args1, args2){console.log(args1 args2); }// 上述代码,等待promise1和promise2执行完,打印出(promise1和promise2)使用的参数 // 注:1.promise1和promise2是异步调用的函数,如ajax请求 // 2.如果执行promise1时用到了一个参数…

Android基础知识(一)

此篇文章开始逐步记录一些Android开发的一些相关知识。本文主要讲了一些adb的常用指令&#xff0c;Toast的常规使用&#xff0c;Intent的显式启动活动&#xff0c;按钮点击事件的四种处理方法&#xff0c;一些常见布局。 1. ADB常用指令 Android Debug Bridge adb android调试桥…