在前端vue中使用虚拟数据模拟后端接口返回的数据,从而使得前端开发独立化。这里使用了两种方案模拟接口返回的数据。

第一种方案是自定义模拟数据,请求获得该数据。该方案是先创建要返回的json接口数据文件,通过请求获取到该json文件,从而获得其中的json数据。

第一种方案是 mockjs 自动生成模拟数据,请求获得该数据。该方案是先由 mockjs 生成随机模拟数据 ,设置获取到该数据的请求路径,通过该请求获取到模拟数据。

方案一:自定义模拟数据

Step1 创建json文件

在项目根目录下创建 static/mock/articleList.json ,模拟数据如下:

{
"data": [
{
"id": "120484551",
"title": "ssh连接问题(不能下载github项目)",
"date": "2021-09-26 11:10:33",
"link": "https://blog.csdn.net/qq_35439539/article/details/120484551"
},
{
"id": "120193268",
"title": "【vue】获取异步加载后的数据",
"date": "2021-09-09 08:37:21",
"link": "https://blog.csdn.net/qq_35439539/article/details/120193268"
},
{
"id": "120193191",
"title": "【vue】两个页面间传参 - props",
"date": "2021-09-09 08:30:17",
"link": "https://blog.csdn.net/qq_35439539/article/details/120193191 "
},
{
"id": "120073645",
"title": "【vue】 使用 Video.js 播放视频",
"date": "2021-09-03 08:36:50",
"link": "https://blog.csdn.net/qq_35439539/article/details/120073645"
},
{
"id": "117815087",
"title": "第三章:Git 把项目推到远程仓库",
"date": "2021-06-11 14:15:09",
"link": "https://blog.csdn.net/qq_35439539/article/details/117815087"
}
]
}

Step2 在 vue.config.js 中配置

需要注意的一点是,修改完这个配置后,需要重启服务器后才能成功请求。

// 本地json文件数据
let articleList = require('./static/mock/articleList.json') module.exports = {
devServer: {
before(app) {
app.get('/api/list', (req, res) => {
console.log("vue.config.js ------------");
res.json(articleList);
})
}
}
}

下面使用2种方式请求数据:

  • 不封装api请求数据
  • 封装api后请求数据

方式一:不封装api请求数据

Step3 在组件中使用 (方式一)

在组件或者页面上请求获取接口数据

<script>
export default {
mounted() {
// 获取文章列表
this.axios.get("/api/list").then((res) => {
console.log("res ==> ", res.data.data);
}, (error) => {
console.log(error);
});
}
}
</script>

方式二:封装api请求数据

Step3 封装api (方式二)

src 下创建文件 api/index,js , 在这个文件中添加项目中用到的所有请求,适合项目中请求比较多的情况,方便统一管理。这个文件中使用 this.axios (也就是使用在 main.js 中的全局 axios)请求不会成功。

import axios from 'axios';

export default {
// 获取博客列表数据
getArticleList() {
return axios({
url: '/api/list',
method: 'get',
});
}
}

Step4 在组件中使用 (方式二)

在组件或者页面上请求获取接口数据

<script>
import api from "../api/index";
export default {
mounted() {
// 获取文章列表
api.getArticleList().then((res) => {
console.log("res ==> ", res.data.data);
}, (error) => {
console.log(error);
});
}
}
</script>

方案二:自动生成模拟数据

使用mockjs自动生成接口模拟数据。Mock.js 是一款模拟数据生成器,旨在帮助前端攻城师独立于后端进行开发,帮助编写单元测试。提供了以下模拟功能:

  • 根据数据模板生成模拟数据
  • 模拟 Ajax 请求,生成并返回模拟数据
  • 基于 HTML 模板生成模拟数据

mock官网文档

Github网址

已安装 axios

npm install --save axios vue-axios

安装 mockjs

npm install mockjs

Step1 引入mock.js

main.js 中添加 mock.js

import './mock';  // 引入mock.js

Step2 编写模拟数据

src 下创建文件 mock.js ,内容如下:

import Mock from 'mockjs'  // 安装的mockjs,而不是mock.js
const Random = Mock.Random; // 获取 mock.Random 随机对象 // 模拟一组数据
const getList = function() {
let list = [];
for (let i = 0; i < 10; i++) {
let listObject = {
id: Random.integer(0), // 生成随机数,最小值是0
title: Random.csentence(10, 30), // 生成随机文本,字数在10-30之间
date: Random.datetime('yyyy-MM-dd hh:mm:ss'), // 格式化日期
link: Random.url(), // 生成随机网址
}
list .push(listObject)
} return {
data: list
}
}
Mock.mock('/api/list', 'get', getList);
export default Mock;

Step3 在组件中使用

在组件或者页面上请求获取接口数据

<script>
export default {
mounted() {
// 获取文章列表
this.axios.get("/api/list").then((res) => {
console.log("res ==> ", res.data.data);
}, (error) => {
console.log(error);
});
}
}
</script>

【vue】生成接口模拟数据的更多相关文章

  1. [Oracle]快速生成大量模拟数据的方法

    快速生成大量模拟数据的方法: create table TEST(id integer, TEST_NUMBER NUMBER(18,6)); insert into TEST select i+j, ...

  2. lazy-mock ,一个生成后端模拟数据的懒人工具

    lazy-mock   lazy-mock 是基于koa2构建的,使用lowdb持久化数据到JSON文件.只需要简单的配置就可以实现和json-server差不多的功能,但是比json-server更 ...

  3. vue+iview+mock模拟数据遍历

    下载安装iview, 进入根目录,用命令行启动 npm install npm run build npm run dev 安装mock.js和axios npm install mock.js -s ...

  4. Vue从接口请求数据

    <!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. 使用 yapi-to-typescript 生成接口响应数据的 TS 类型声明

    TS 是越写越爽,但是很不爽的是接口响应数据一堆,每次要去手写很麻烦. 最近正好后端接口文档从一个垃圾工具切换到了 Yapi,然后去搜了下可以通过接口文档自动生成 TS 类型声明,就自己搞了下,还是很 ...

  6. vue 利用mockJs 模拟数据

    工作这几年一直用Java 开发,前端的技术自己也忘得差不多了(实际上自己也不怎么会),最近参与的项目是用VUE +  Element-ui + springboot 写的,由于需求没有定,先画一个de ...

  7. C#中使用Bogus创建模拟数据

    原文:CREATING SAMPLE DATA FOR C# 作者:Bruno Sonnino 译文:C#中使用Bogus创建模拟数据 译者: Lamond Lu 背景 在我每次写技术类博文的时候,经 ...

  8. vue项目中使用mockjs模拟接口返回数据

    Mock.js 是一个模拟数据生成器,利用它,可以拦截ajax请求,直接模拟返回数据,这样前后端只要约定好数据格式,前端就不需要依赖后端的接口,可以直接使用模拟的数据了. 网上介绍mock的教程也较多 ...

  9. Spring Boot(九)Swagger2自动生成接口文档和Mock模拟数据

    一.简介 在当下这个前后端分离的技术趋势下,前端工程师过度依赖后端工程师的接口和数据,给开发带来了两大问题: 问题一.后端接口查看难:要怎么调用?参数怎么传递?有几个参数?参数都代表什么含义? 问题二 ...

随机推荐

  1. MVVMLight学习笔记(二)---MVVMLight框架初探

    一.MVVM分层概述 MVVM中,各个部分的职责如下: Model:负责数据实体的结构处理,与ViewModel进行交互: View:负责界面显示,与ViewModel进行数据和命令的交互: View ...

  2. [ASP.NET MVC]EntityFramework离线部署

    根据项目需要可能会需要离线开发或者网速不好的情况下,很难配置EF,这种情况下就进行离线配置 (1)下载离线EF包: EF6.0的packages,百度网盘链接:https://pan.baidu.co ...

  3. Go版本管理--处理不兼容

    目录 1. 简介 2.能否引起不兼容的包 3.如何处理incompatible 1. 简介 Go module的版本选择机制,其中介绍了一个Module的版本号需要遵循v<major>.& ...

  4. redis连接池 go-redis

    为什么使用连接池? 首先Redis也是一种数据库,它基于C/S模式,因此如果需要使用必须建立连接,稍微熟悉网络的人应该都清楚地知道为什么需要建立连接,C/S模式本身就是一种远程通信的交互模式,因此Re ...

  5. Linux的基础——虚拟机的克隆

    1.虚拟机的安装 虚拟机的安装在另一个文档 安装jdk(在另外一个文档中) 2.虚拟机的克隆 准备工作:一台装有Linux系统的主机(已经配置好jdk) 选择主机进行克隆 注意:这里一定要选择创建完整 ...

  6. 查看局域网内所有的主机名、MAC地址和IP地址

    查看所有 IP at MAC $ arp -a ? (10.125.49.187) at 18:81:e:eb:ef:c0 on en0 ifscope [ethernet] ? (10.125.50 ...

  7. openresty 自动 deploy github repository

    配置 deploy key 配置 webhooks https://gist.github.com/hangj/ce6aabac77e96b010e3b361e18422013

  8. 根据短链生成二维码并上传七牛云(Java)

    通过短链生成二维码并上传七牛云(Java) 前言 网上这种帖子其实也是很多,大部分搜出来的是CSDN的,然后点进去一看都几乎一样:所以这次给个自己实践的例子记录. 这次也是通过搜索得到的一部分能实现这 ...

  9. Linux常用命令 - more命令详解

    21篇测试必备的Linux常用命令,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1672457.html 每次显 ...

  10. python库--pandas--Series

    方法 返回数据类型 参数 说明 Series(一维)       .Series() Series 实例s 创建一维数据类型Series data=None 要转化为Series的数据(也可用dict ...