mock.js 模拟数据

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/xiaoxiaojie12321/article/details/81301399

1.安装

npm install mockjs --save

npm install axios --save

安装axios是为了能模拟后台接口。

2.建立目录结构如下:

3.在main.js引入mockjs

4. mock.js


 
 
  1. import Mock from 'mockjs' // 引入mockjs
  2. const Random = Mock.Random // Mock.Random 是一个工具类,用于生成各种随机数据
  3. let data = [] // 用于接受生成数据的数组
  4. let size = [
  5. '300x250', '250x250', '240x400', '336x280',
  6. '180x150', '720x300', '468x60', '234x60',
  7. '88x31', '120x90', '120x60', '120x240',
  8. '125x125', '728x90', '160x600', '120x600',
  9. '300x600'
  10. ] // 定义随机值
  11. for( let i = 0; i < 10; i ++) { // 可自定义生成的个数
  12. let template = {
  13. 'Boolean': Random.boolean, // 可以生成基本数据类型
  14. 'Natural': Random.natural( 1, 10), // 生成1到100之间自然数
  15. 'Integer': Random.integer( 1, 100), // 生成1到100之间的整数
  16. 'Float': Random. float( 0, 100, 0, 5), // 生成0到100之间的浮点数,小数点后尾数为0到5位
  17. 'Character': Random.character(), // 生成随机字符串,可加参数定义规则
  18. 'String': Random. string( 2, 10), // 生成2到10个字符之间的字符串
  19. 'Range': Random.range( 0, 10, 2), // 生成一个随机数组
  20. 'Date': Random.date(), // 生成一个随机日期,可加参数定义日期格式
  21. 'Image': Random.image(Random.size, '#02adea', 'Hello'), // Random.size表示将从size数据中任选一个数据
  22. 'Color': Random.color(), // 生成一个颜色随机值
  23. 'Paragraph':Random.paragraph( 2, 5), //生成2至5个句子的文本
  24. 'Name': Random.name(), // 生成姓名
  25. 'Url': Random.url(), // 生成web地址
  26. 'Address': Random.province() // 生成地址
  27. }
  28. data.push(template)
  29. }
  30. Mock.mock( '/data/index', 'post', data) // 根据数据模板生成模拟数据

5.api.js


 
 
  1. import axios from 'axios'
  2. axios.defaults.headers.post[ 'Content-Type'] = 'application/x-www-form-urlencoded'
  3. // 请求拦截器
  4. axios.interceptors.request.use( function(config) {
  5. return config;
  6. }, function(error) {
  7. return Promise.reject(error);
  8. })
  9. // 响应拦截器
  10. axios.interceptors.response.use( function(response) {
  11. return response;
  12. }, function(error) {
  13. return Promise.reject(error);
  14. })
  15. // 封装axios的post请求
  16. export function fetch(url, params) {
  17. return new Promise( (resolve, reject) => {
  18. axios.post(url, params)
  19. .then( response => {
  20. resolve(response.data);
  21. })
  22. .catch( (error) => {
  23. reject(error);
  24. })
  25. })
  26. }
  27. export default {
  28. mockdata(url, params) {
  29. return fetch(url, params);
  30. }
  31. }

6.mock.vue


 
 
  1. <template>
  2. <div>
  3. </div>
  4. </template>
  5. <script>
  6. import api from './../axios/api.js'
  7. export default {
  8. name: 'Mock',
  9. data () {
  10. return {
  11. dataShow: []
  12. }
  13. },
  14. created () {
  15. this.getdata()
  16. },
  17. methods: {
  18. getdata: function() {
  19. api.mockdata( '/data/index')
  20. .then( res => {
  21. console.log(res);
  22. this.dataShow = res.data;
  23. })
  24. }
  25. }
  26. }
  27. </script>
  28. <!-- Add "scoped" attribute to limit CSS to this component only -->
  29. <style scoped>
  30. </style>

7.控制台打印出的数据

以上是使用mockjs生成的模拟数据,基本可以满足平时开发的需要,不过mockjs还有其他的用法未能一一列出来,建议各位朋友们去mock官网的文档了解更多,地址:http://mockjs.com/ 。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值