vue-cli+mock.js+axios模拟前后台数据交互
最近工作不是很忙,自己做了一个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
const Mock = require('mockjs');
// 获取 mock.Random 对象
const Random = Mock.Random;
// mock一组数据
const userInfoData = function() {
let person = [
{
label:'姓名',
text:Random.cname(),//随机生成中文名
},
{
label:'身份证号',
text:Random.id()//随机生成身份证
},
{
label:'手机号',
text:/^[1][3,4,5,7,8][0-9]{9}$/ //正则生成手机号
},
{
label:'地址',
text:Random.county(true) //随机生成地址
},
{
label:'返佣银行卡号',
text:/^([1-9]{1})(\d{14}|\d{18})$/
},
{
label:'开户行',
text:Random.cword(2,4)+'银行'
},
]
return {
person: person
}
} // Mock.mock( url, post/get , 返回的数据);
Mock.mock('/user/index', 'post', userInfoData()); Mock.mock('user/ma','post',{
phone:/^[1][3,4,5,7,8][0-9]{9}$/,
photo:Random.dataImage('118x118', '居间协议')
}); Mock.mock('user/login','post',{
userId:'@natural(0,100)'
}) Mock.setup({
timeout:0-300
})
这个就是mock.js里面的数据,你可以在里面定义各种数据模板,然后当然还需要模拟的api这个就是在axios/api.js里面统一管理进行拦截ajax请求
axios/api.js如下
import axios from 'axios'
import vue from 'vue' axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded' // 请求拦截器
axios.interceptors.request.use(function(config) {
return config;
}, function(error) {
return Promise.reject(error);
})
// 响应拦截器
axios.interceptors.response.use(function(response) {
return response;
}, function(error) {
return Promise.reject(error);
}) // 封装axios的post请求
export function fetch(url, params) {
return new Promise((resolve, reject) => {
axios.post(url, params)
.then(response => {
resolve(response.data);
})
.catch((error) => {
reject(error);
})
})
} export default {
JH_info(url, params) {
return fetch(url, params);
}
}
这里就自己看,不用多说了,最后用export default去暴露接口进行引用
接下来就是怎么在自己页面调用mock数据
上代码
import api from '../../axios/api.js' //引入api
export default { data(){
return {
proStatue:'等待上传居间协议',
proPhoto:require('../../assets/img/logo.png'),
upload:'ok',
imageUrl:'',
user:[
{
label:'姓名',
text:'小花'
},
{
label:'身份证号',
text:'467829299277718369'
},
{
label:'手机号',
text:'136890288802'
},
{
label:'开启时间',
text:'2018-05-01'
},
{
label:'来源',
text:'都某人'
},
{
label:'权益',
text:1000.00
},
{
label:'手续费',
text:1000.00
}, ],
}
},
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 },
methods:{
// 图片上传
handleAvatarSuccess(res, file) {
console.log('file',file);
this.imageUrl = URL.createObjectURL(file.raw);
},
beforeAvatarUpload(file) {
const isJPG = file.type === 'image/jpeg';
const isLt2M = file.size / 1024 / 1024 < 2; if (!isJPG) {
this.$message.error('上传头像图片只能是 JPG 格式!');
}
if (!isLt2M) {
this.$message.error('上传头像图片大小不能超过 2MB!');
}
return isJPG && isLt2M;
},
//提交审核
checkInfo(){
this.upload = 'true';
this.proStatue = '等待审核';
}, setUserApi(){
api.JH_info('/user/index','123')
.then(res => {
console.log(res);
this.user = res.person;
});
},
}
}
这是控制台打印的数据
当然还有更多mock的数据模板你可以去尝试
vue-cli+mock.js+axios模拟前后台数据交互的更多相关文章
- 前端笔记之Vue(七)Vue-router&axios&Vue插件&Mock.js&cookie|session&加密
一.Vue-router(路由) 1.1路由创建 官网:https://router.vuejs.org/zh/ 用 Vue.js + Vue Router 创建单页应用,是非常简单的.使用 Vue. ...
- vue仓库、组件间通信、前后台数据交互、前端储存数据大汇总
目录 路由重定向 仓库介绍 vuex插件:可以完成任意组件间信息交互(移动端) 前端存储数据大汇总 前后台交互方式(重点) 前后台数据交互 axios插件:完成前后台ajax交互的 同源策略 - 前后 ...
- vue-cli模拟后台数据交互
作为一个前端入坑的妹子,在学习vue的道路上挣扎徘徊,由一开始的对vue一直蒙圈只知道双向数据绑定和一些'V-x'的指令,慢慢通过一个视频的学习渐渐入坑,对于我这个js基础不怎么好而且编程思维又不是很 ...
- Django学习笔记(8)——前后台数据交互实战(AJAX)
这里将自己这段时间学习的关于前后台数据交互的笔记写在这里,这里包含了Django传输数据给JS,AJAX的相关问题,跨域问题,如何解决AJAX的跨域问题等等.比较凌乱,请看到这篇博客的盆友见谅,如果我 ...
- Phonegap开发的前后台数据交互
在用Phonegap开发时,需要进行前后台数据交互,在网上找资料,很多东西让人一头雾水,最后借鉴了下面的博客: http://blog.sina.com.cn/s/blog_681929ae01017 ...
- Spring MVC 前后台数据交互
本文是转载文章,感觉比较好,如有侵权,请联系本人,我将及时删除. 原文网址地址:<Spring MVC 前后台数据交互> 1.服务端数据到客户端 (1)返回页面,Controller中方法 ...
- 用PHP和Ajax进行前后台数据交互——以用户登录为例
很多网站中都有用户登录系统,要完成用户的注册和登陆,就一定要用到前后台的数据交互.在这里以简单的用户注册和登陆为例介绍一下前后台交互的大致流程. 首先,我们来做一个简单的登陆界面. 这里为了方便我使用 ...
- vue+mock.js+element-ui模拟数据搞定分页
效果如图: 前提是搭好vue前端框架,npm install mockjs引入mock.js 当前页全部代码如下,其他有关element-ui的引入未提到,仅作参考用 <!-- 用户管理 --& ...
- vue项目中使用mockjs+axios模拟后台数据返回
自己写练手项目的时候常常会遇到一个问题,没有后台接口,获取数据总是很麻烦,于是在网上找了下,发现一个挺好用的模拟后台接口数据的工具:mockjs.现在把自己在项目中使用的方法贴出来 先看下项目的目 ...
随机推荐
- python整数与IP地址转换
python整数与IP地址转换 [转] 我们有时会将一个整数与IP地址进行互换,用python代码实现很简单将一个整数如2000000,变为一个IP地址的方式 >>> import ...
- L1-Day14
今天是周日,不用交作业,但是需要把这一周的知识点复习总结 做个思维导图吧
- opencv基础教程
1,基本语法 环境:python3.6.6+numpy+opencv3 安装:没有详细编译,直接pip install opencv-python 矩阵和图片: img=numpy.zeros((3, ...
- L2-013 红色警报 (25 分) (并查集)
链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805063963230208 题目: 战争中保持各个城市间的连通性非 ...
- iframe 加form提交数据
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 从零开始搭建Android组件化框架
问题 在已经开发过几个项目的童鞋,如果这时需要重新开发一个新项目,是否需要自己重新搭建框架呢,还是从老项目中拷贝粘贴? 我们是否可以封装一个底层的lib库,这个底层的公共基础库 包括了一些第三方库(如 ...
- web.xml 各版本的 Schema 头部声明
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "- ...
- JAVA第三次实训作业
---恢复内容开始--- 1. 编写“学生”类及其测试类. “学生”类: 类名:Student 属性:姓名.性别.年龄.学号.5门课程的成绩 方法1:在控制台输出各个属性的值. 方法2:计算平均成绩 ...
- Python爬取指定重量的快递价格
目录 一.获取查询接口 二.获取相关数据 三.编写爬虫脚本 四.查看查询效果 背景:现在这个时代,快递横飞.我们想寄一个快递,给出的选择也是多种多样的(根据快递的大小.送达的时间.寄送的距离及价格.公 ...
- Typescript04---模块、命名空间
在Typescript1.5 中,内部模块称作命名空间,外部模块成为模块 一.什么是模块? 模块就是一个或一组功能模块. 模块在其自身的作用域里执行,而不是在全局作用域里.意味着,模块中的变量.函数. ...