最近工作不是很忙,自己做了一个vue的移动端的小项目,涉及到后台数据的时候,网上查阅了一些资料,因为是自己写的项目没有后台只能自己模拟数据,刚开始就自己写了一些静态数据后来觉得尽量模拟真实的比较好些,刚好也了解一下axios因为之前用的是vue-resource,就此开始挖坑填坑之路-------

首先说一下mock.js  http://mockjs.com/这是它的官网,讲的还是很详细,主要有各种数据模板可以去定义,废话不多说,下面开始正文

1、安装mock

npm install mockjs --save-dev

2、安装axios

npm install axios --save

3、我们来看一下项目结构

mock.js

 1 const Mock = require('mockjs');
 2 // 获取 mock.Random 对象
 3 const Random = Mock.Random;
 4 // mock一组数据
 5 const userInfoData = function() {
 6         let person = [
 7             {
 8                 label:'姓名',
 9                 text:Random.cname(),//随机生成中文名
10             },
11             {
12                 label:'身份证号',
13                 text:Random.id()//随机生成身份证
14             },
15             {
16                 label:'手机号',
17                 text:/^[1][3,4,5,7,8][0-9]{9}$/ //正则生成手机号
18             },
19             {
20                 label:'地址',
21                 text:Random.county(true) //随机生成地址
22             },
23             {
24                 label:'返佣银行卡号',
25                 text:/^([1-9]{1})(\d{14}|\d{18})$/
26             },
27             {
28                 label:'开户行',
29                 text:Random.cword(2,4)+'银行'
30             },
31         ]
32     return {
33         person: person
34     }
35 }
36
37 // Mock.mock( url, post/get , 返回的数据);
38 Mock.mock('/user/index', 'post', userInfoData());
39
40
41
42 Mock.mock('user/ma','post',{
43     phone:/^[1][3,4,5,7,8][0-9]{9}$/,
44     photo:Random.dataImage('118x118', '居间协议')
45 });
46
47 Mock.mock('user/login','post',{
48     userId:'@natural(0,100)'
49 })
50
51 Mock.setup({
52     timeout:0-300
53 })

这个就是mock.js里面的数据,你可以在里面定义各种数据模板,然后当然还需要模拟的api这个就是在axios/api.js里面统一管理进行拦截ajax请求

axios/api.js如下

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

这里就自己看,不用多说了,最后用export default去暴露接口进行引用

接下来就是怎么在自己页面调用mock数据

上代码

 1 import api from '../../axios/api.js'   //引入api
 2 export default {
 3
 4   data(){
 5     return {
 6       proStatue:'等待上传居间协议',
 7       proPhoto:require('../../assets/img/logo.png'),
 8       upload:'ok',
 9       imageUrl:'',
10       user:[
11        {
12         label:'姓名',
13         text:'小花'
14        },
15        {
16         label:'身份证号',
17         text:'467829299277718369'
18        },
19        {
20         label:'手机号',
21         text:'136890288802'
22        },
23        {
24         label:'开启时间',
25         text:'2018-05-01'
26        },
27        {
28         label:'来源',
29         text:'都某人'
30        },
31        {
32         label:'权益',
33         text:1000.00
34        },
35        {
36         label:'手续费',
37         text:1000.00
38        },
39
40       ],
41     }
42   },
43   created(){
44     this.setUserApi();//调用了定义的请求方法
45     api.JH_info('user/ma','123')//直接页面创建的时候请求接口
46     .then(res=>{
47       console.log('img',res);
48       this.imageUrl = res.photo;
49     })
50   },
51   methods:{
52     // 图片上传
53      handleAvatarSuccess(res, file) {
54       console.log('file',file);
55         this.imageUrl = URL.createObjectURL(file.raw);
56       },
57       beforeAvatarUpload(file) {
58         const isJPG = file.type === 'image/jpeg';
59         const isLt2M = file.size / 1024 / 1024 < 2;
60
61         if (!isJPG) {
62           this.$message.error('上传头像图片只能是 JPG 格式!');
63         }
64         if (!isLt2M) {
65           this.$message.error('上传头像图片大小不能超过 2MB!');
66         }
67         return isJPG && isLt2M;
68       },
69        //提交审核
70       checkInfo(){
71         this.upload = 'true';
72         this.proStatue = '等待审核';
73       },
74
75       setUserApi(){
76       api.JH_info('/user/index','123')
77       .then(res => {
78         console.log(res);
79         this.user = res.person;
80       });
81     },
82
83   }
84 }

这是控制台打印的数据

当然还有更多mock的数据模板你可以去尝试

转载于:https://www.cnblogs.com/kingsnowcan/p/mock_axios.html

vue-cli+mock.js+axios模拟前后台数据交互相关推荐

  1. Vue前后台数据交互实例演示,使用axios传递json字符串、数组

    Vue 前后台数据交互实例演示 第一章:后台实现 ① Python 启用 Flask 服务器 ② 后台启用成功验证 第二章:前台实现 ① Vue 使用 Axios 实现接收 json 字符串.数组数据 ...

  2. html 假数据,mock.js实现模拟生成假数据功能示例

    本文实例讲述了mock.js实现模拟生成假数据功能.分享给大家供大家参考,具体如下: mock使用方法很简单, 下面是简单的用法, 详细的用法可以看官方文档, 写的很清楚, 下面的代码直接拷贝到本地h ...

  3. vue-cli模拟后台数据交互

    作为一个前端入坑的妹子,在学习vue的道路上挣扎徘徊,由一开始的对vue一直蒙圈只知道双向数据绑定和一些'V-x'的指令,慢慢通过一个视频的学习渐渐入坑,对于我这个js基础不怎么好而且编程思维又不是很 ...

  4. 基于axios前后端数据交互

    基于axios前后端数据交互 一.get 1.前端 <!DOCTYPE html> <html lang="en"> <head><met ...

  5. pycharm+python+bootstrap写一个登陆界面_Python--day56(前后台数据交互、bootstrap)

    1. 前后台数据交互 1.1 socket搭建后台 [注意点]: 1. 前台发送的数据是用\r\n进行换行 2. 路由:请求的路径,获得路由的途径是通过后台对前台发送的数据进行拆分(split)得到, ...

  6. 详解vue-element-admin 使用mock.js动态模拟数据

    大家好,我是一条肥鲶鱼. 提示:胆小慎入 文章目录 大家好,我是一条肥鲶鱼. 前言 一.mock.js 1.为什么使用mock.js 2.mock-server.js的出现 二.使用步骤 1.开发环境 ...

  7. 使用mock.js提供模拟数据

    Mock.js 官网:链接地址 官方说明: *前后端分离,让前端工程师独立于后端开发. *增加单元测试的真实性,通过随机数据,模拟各种场景. *开发无侵入,不需要修改既有代码,就可以拦截ajax请求, ...

  8. easy-table-vue+Vue、SpringBoot+Mybatis实现MVVM模型前后台数据交互

    原文链接:https://www.cnblogs.com/wlovet/p/10980579.html 根据原贴在搭建过程中出现的问题,我在该博客https://blog.csdn.net/Sun_o ...

  9. 前端笔记-Vue cli中使用axios后JavaScript变量传输给vue变量要注意的地方

    目录 axios.all中的注意事项 为什么要采用全局的JavaScript变量给vue变量 axios.all中的注意事项 如下的请求: methods:{getData(){axios.all([ ...

最新文章

  1. 星期几在c语言什么变量,计算任何一天是星期几的C语言源代码.
  2. 新冠病毒侵入人体全过程!从脚趾到大脑,科学家追踪到病毒对身体的巨大摧残...
  3. 一步步学习SpringBoot(一) 快速搭建一个web
  4. 【C++】37.为什么要使用Lambda表达式
  5. Working with Multiple Environments(使用多个环境)
  6. 【网络流】植物大战僵尸(P2805)
  7. Android 获取光线强弱,开启闪光灯,关闭闪光灯
  8. 解决github clone慢的问题
  9. QQ空间自动点赞脚本1
  10. android 截屏源码分析,android 截图功能源码解析
  11. HTTPS 与 SSL 证书
  12. 一日精通python编程_爱上Python:一日精通Python编程
  13. 统计词频并输出高频词汇
  14. 分治法 —— 快速排序(递归,迭代,非递归)
  15. 录音文件转换成文字很难吗?这几个步骤就可以解决烦恼了
  16. 华为p50鸿蒙系统手机价格,华为P50系列屏幕、镜头、芯片、价格全曝光,预装鸿蒙系统?...
  17. Pycharm永久激活七步走
  18. 锁群管理系统0day复现
  19. 小程序分享功能实现结果回调以及页面传参
  20. 在linux中 系统默认,在Red Hat Linux 9中,系统默认的( )用户对整个系统拥有完全的控制权...

热门文章

  1. Revit二次开发:获取所有工作集、活动工作集、指定工作集下的 所有构件
  2. qrcode 生成二维码,带logo 带文字描述
  3. 最新猎豹网校C语言数据结构与算法项目实战(共32集)
  4. SpringBoot OSS实战之用户头像上传
  5. usb disconnect
  6. Alook搭配JS脚本完美食用
  7. 光大证券自称因异常交易损失约1.94亿元,疑为程序问题!
  8. Asp.Net 在线(登录)人数统计
  9. 今天给大家推荐一个可视化库:cutecharts,我把她叫做pyecharts的妹妹
  10. Python中__dict__属性的详解