ajax生成随机数,vue进阶3 - Mock.js(生成随机数据,模拟Ajax请求)

一、安装

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

import { Login } from '@/api/api'

export default {

data () {

return {

form2: {

username: '',

password: ''

},

rules2: {

username: [

{ required: true, message: '请输入账号', trigger: 'blur' },

],

password: [

{ required: true, message: '请输入密码', trigger: 'blur' }

]

}

}

},

methods: {

handleSubmit() {

this.$refs.form2.validate(valid => {

if(valid) {

let para = { username: this.form2.username, password: this.form2.password }

Login(para).then(res => {

let { msg, code } = res;

console.log(msg, code)

if(code !== 200 ) {

this.$message.error(msg)

} else {

this.$message.success(msg);

this.$router.push({ path: '/'})

}

})

} else {

return false;

}

});

}

}

}

.login {

width: 100%;

height: 100%;

display: flex;

justify-content: center;

align-items: center;

}

.login2 {

height: 100%;

width: 60%;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 Mock.js 生成包含随机数据的响应对象,你需要在前端的 JavaScript 代码中引入 Mock.js 库并定义模板。然后,你可以在需要随机数据的地方使用这个模板生成数据。 首先,你需要在 HTML 文件中引入 Mock.js 库。你可以从 Mock.js 官方网站下载库文件,或者使用一些在线 CDN。例如,你可以在 `<head>` 标签中添加以下代码来引入 Mock.js: ```html <script src="https://cdn.jsdelivr.net/npm/mockjs@1.1.0/dist/mock.js"></script> ``` 然后,在你的 JavaScript 代码中,使用 Mock.js 定义模板并生成随机数据。下面是一个示例: ```javascript // 使用 Mock.js 定义模板 const template = { 'name': '@cname', // 随机生成中文名字 'age|18-60': 0, // 随机生成18到60之间的整数 'email': '@email', // 随机生成邮箱 'avatar': '@image("200x200")' // 随机生成200x200的图片链接 }; // 使用模板生成随机数const data = Mock.mock(template); console.log(data); ``` 你可以将上述代码放在你的 JavaScript 文件中的适当位置,例如在页面加载完成后的 `DOMContentLoaded` 事件处理程序中。 注意,Mock.js 是一个前端库,它通过拦截 AJAX 请求模拟后端接口返回的数据。通常情况下,你需要在前端开发环境中运行你的代码,例如在本地的开发服务器上。这样,当你发送 AJAX 请求时,Mock.js 就可以拦截请求并返回随机数据。 如果你使用的是 Vue.js、React 或 Angular 等前端框架,你可以在相应的组件中引入 Mock.js,并在开发环境中使用它来模拟数据。具体的用法可能会因框架而异,请参考相应框架的文档或示例。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值