博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue进阶3 - Mock.js(生成随机数据,模拟Ajax请求)
阅读量:6939 次
发布时间:2019-06-27

本文共 3446 字,大约阅读时间需要 11 分钟。

一、安装

1.安装mock、axios

npm install mockjs axios

2、安装axios-mock-adapter

axios-mock-adapter是axios与mock配置器,是axios的模拟调试器
npm install axios-mock-adapter --save-dev

二、创建mock文件

1.新建src/mock/data/user.js,生成随机数据

import Mock from 'mockjs'; // 导入mockjs 模块let Users = []; // 定义我们需要的数据for (let i = 0; i <= 90; i++) {      Users.push(Mock.mock({ // 根据数据模板生成模拟数据        id: Mock.Random.guid(), // 随机生成一个id        name: Mock.Random.cname(), // 随机生成一个常见的中文姓名。        addr: Mock.mock('@county(true)'), // @county(true)为数据模板        'age|18-60': 1, // 'age|18-60': 1 为数据模板        birth: Mock.Random.date(), // 随机生成日期        sex: Mock.Random.integer(0, 1), // 随机生成整数, min:0, max1,    }));}const LoginUsers = [ // 制造登录账号,便于模拟登陆测试    {        id: 1,        username: 'admin1',        password: '123456',        name: '王某某'    },    {        id: 2,        username: 'admin2',        password: '123456',        name: '陈某某'    }]export { // 导出列表数据  LoginUsers,Users};

2.新建src/mock.mock.js,模拟ajax请求的接口,生成并返回模拟数据

reply的参数为 (status, data, headers)
configt指前台传过来的数据
resolve([状态值,{返回的数据}])
import axios from 'axios';import MockAdapter from 'axios-mock-adapter';import { LoginUsers, Users } from './data/user'let _Users = Users;export default {    start() { //初始化函数        let mock = new MockAdapter(axios); // 创建 MockAdapter 实例        //登录        mock.onPost('/login').reply(config => {            let {username, password} = JSON.parse(config.data);            return new Promise((resolve, reject) => {                let user = null;                setTimeout(() => {                    let hasUser = LoginUsers.some(u => {                        if(u.username === username && u.password === password) {                            user= JSON.parse(JSON.stringify(u));                            user.password = undefined;                            return true;                        }                    });                    if(hasUser) {                        resolve([200, { code:200, msg: '登录成功', user }]);                    } else {                        resolve([200, { code: 500, msg: '账号或者密码错误' }]);                    }                },1000);            });        });            // 获取用户列表        mock.onGet('/user/list').reply(confige => {            let {name} = confige.params;            let mockUsers = _Users.filter(user => {                if(name && user.name.indexOf(name) == -1) return false;                return true;            });            return new Promise((resolve, reject) => {                setTimeout(()=> {                    resolve([200, {                        users: mockUsers                    }])                }, 1000);            });        });    }}

3.新建src/mock/index.js,导入同级下mock.js的内容,并且导出

import mock from './mock'; export default mock;

4.打开src/main.js, 引入mock,全局加载mock并执行初始化函数

import Mock from './mock'Mock.start();

三、封装api函数

1.新建src/api/api.js,把所有接口都写到一个文件里面,封装成一个个函数,便于修改与管理

import axios from 'axios';        export const Login = params => { return axios.post(`/login`, params).then(res.data); };    export const getUserList = params => { return axios.get(`/user/list`, { params: params }); }

2.新建src/api/index.js

import * as api from './api';export default api;

四、调用接口

新建src/pages/login.vue

转载地址:http://eksnl.baihongyu.com/

你可能感兴趣的文章
uC/OS-II应用程序代码
查看>>
JVM(四)垃圾收集器_分代收集器
查看>>
每日例会
查看>>
根据图片路径生成二进制流,下载图片
查看>>
解决Linux下启动Tomcat遇到Neither the JAVA_HOME nor the JRE_HOME environment variable is defined...
查看>>
C#在Json反序列化中处理键的特殊字符
查看>>
Eclipse for Java EE软件操作集锦(一)
查看>>
文本分类之六分类结果评估
查看>>
信息熵
查看>>
正则表达式的基本用法
查看>>
.NET Core 2.0 开源Office组件 NPOI
查看>>
STL学习笔记-- stack
查看>>
Git
查看>>
pip list 警告消除方法
查看>>
Shell 同步时间脚本
查看>>
基于原生 XMLHTTPPRequest 封装 get 方法
查看>>
Egret入门(二)--windows下环境搭建
查看>>
hash和history模式
查看>>
nginx.spec
查看>>
xss level11
查看>>