mock的使用——生成表格数据并展示

目录

为什么使用mock

使用mock的优点

mock使用步骤

下载安装mockjs和axios模块

创建index.js

编写模拟数据

引用mockjs文件和axios

主页面引入mock数据实现功能

实现结果


mock官方文档示例:http://mockjs.com/examples.html

为什么使用mock

在团队开发时,前端完成页面设计后想要测试自己的页面是否符合需求,但是后端还没完成接口,没有接口就只好写静态模拟数据。将静态数据写在js文件里,再引用url完成页面渲染。等到后端完成接口后又需要修改我们前面自己写的url,这样会使开发过程变得麻烦。使用mock会自动生成模拟数据,不需要我们自己编写js数据文件。mock对象就是真实对象在调试期间的代替品。

使用mock的优点

1、前后端分离,前端工程师可以独立于后端进行开发;

2、增加测试的真实性。通过随机数据可以模拟各种场景;

3、不需要修改已有的代码就可以拦截ajax请求,返回模拟的响应数据;

4、生成的数据类型丰富,包括随机的文本、数字、布尔值、日期、邮箱、链接、图片、颜色、图形等;

5、支持扩展更多的数据类型,支持自定义的函数和正则表达式;

6、对后续开发影响很小。在已有接口文档情况下直接按照接口文档开发,在接口开发完成后只需要改变引入的url地址就可以了;

7、不用考虑跨域问题。

mock使用步骤

下载安装mockjs和axios模块

下载安装mockjs模块:npm install mockjs -S

下载安装axios模块:npm install axios --save

创建index.js

在src下创建一个文件夹用来存放模拟的数据文件,例如 /src/mock/index.js

编写模拟数据

在文件中编写所需要生成的模拟数据。

更多写法可参考mock官方文档示例Mock.js

我的mock数据文件为:

/* eslint-disable prettier/prettier */
import Mock from "mockjs"
let data = Mock.mock({
  //生成10条数据,数组形式
  "data|10": [
    {
      "shopId|+1": 1, //生成id,自增1
      "shopName": "@cname", //生成姓名(这里生成的是中文名称)
      "shopImg": "@Image('100*40','#c33','#ffffff','商品')", //生成随机图片(大小/背景色/字体颜色/文字信息),打印的是图片地址
      "shopVolume|30-1000": 30, //随机生成30至1000的数字(价格)
      "shopAddress": "@county(true)", //随机生成地址
      "shopDate": "@date('yyyy-MM-dd')", //随机生成yyyy-MM-dd格式的日期
      "shopPhone": /^1(5|3|7|8)[0-9]{9}$/, //随机生成电话号码
      "shopStart|1-5": "★", //随机生成1至5个指定的图形(★)
    },
  ],
});
//导出mock数据文件,指定此数据文件的接口url后缀为:/shop/shopList
// eslint-disable-next-line no-unused-vars
export default Mock.mock('/shop/shopList', (req, res) => {
  return data
})

引用mockjs文件和axios

在main.js文件中引入编写的mockjs文件和axios

import "./mock/index.js";
import axios from "axios";
Vue.prototype.axios = axios;

主页面引入mock数据实现功能

这里每一列的prop属性值要和编写的mockjs文件里的数据对应属性一致

<template>
  <div>
    <h1 align="center">商品信息表</h1>
    <!-- <el-button @click="chaxun">查询信息</el-button> -->
    <el-table ref="table" :data="tableData" stripe max-height="500" border>
      <el-table-column label="选择" type="selection" />
      <el-table-column label="编号" prop="shopId" align="center" />
      <el-table-column label="名称" prop="shopName" align="center" />
      <el-table-column label="图片" prop="shopImg" align="center" />
      <el-table-column label="商品价格" prop="shopVolume" align="center" />
      <el-table-column label="地址" prop="shopAddress" align="center" />
      <el-table-column label="生产日期" prop="shopDate" align="center" />
      <el-table-column label="商家联系方式" prop="shopPhone" align="center" />
      <el-table-column label="推荐指数" prop="shopStart" align="center" />
    </el-table>
  </div>
</template>
<script>
import axios from "axios";
// import reqMock from "../mock/reqMock";
export default {
  name: "Table",
  data() {
    return {
      tableData: [],
    };
  },
  mounted() {
    //console.log(1111);
    axios.get("/shop/shopList").then((res) => {
      //console.log("2222", res);
      this.tableData = res.data.data; //第二个data是我写的mock数据data
    });
  },
};
</script>

实现结果

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Mock.js可以动态生成各种类型的数据,包括数字、字符串、布尔值、数组、对象等等。以下是使用Mock.js来mock动态生成数据的步骤: 1. 安装Mock.js 可以通过npm安装Mock.js,命令如下: ``` npm install mockjs ``` 也可以在HTML文件中直接引用Mock.js的CDN链接: ``` <script src="https://cdn.bootcdn.net/ajax/libs/Mock.js/1.0.1-beta3/mock-min.js"></script> ``` 2. 定义Mock数据模板 Mock.js的核心是数据模板,它是一个JavaScript对象,用来描述Mock数据的结构和类型。例如,以下是一个简单的Mock数据模板: ``` var data = { name: '@cname', // 随机生成中文名字 age: '@integer(18, 60)', // 随机生成18到60之间的整数 gender: '@boolean', // 随机生成布尔值 hobbies: ['@word', '@word', '@word'] // 随机生成三个英文单词组成的数组 }; ``` 3. 使用Mock数据模板生成Mock数据 使用Mock.js的`Mock.mock()`方法可以根据数据模板生成Mock数据,例如: ``` var mockData = Mock.mock(data); ``` `mockData`就是根据`data`模板生成Mock数据。 4. 使用Mock数据 生成Mock数据后,可以将其用于测试、演示或其他目的。例如,将Mock数据渲染到页面中: ``` document.getElementById('name').innerHTML = mockData.name; document.getElementById('age').innerHTML = mockData.age; document.getElementById('gender').innerHTML = mockData.gender ? '男' : '女'; document.getElementById('hobbies').innerHTML = mockData.hobbies.join(', '); ``` 以上就是使用Mock.js来mock动态生成数据的基本步骤。Mock.js还支持更多高级功能,例如数据占位符、数据生成规则、拦截Ajax请求等等,可以根据需要进行学习和使用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

别Null.了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值