vue+iview+mock模拟数据遍历
程序员文章站
2022-10-04 13:45:02
下载安装iview, 进入根目录,用命令行启动 安装mock.js和axios 配置mock和axios 1.在main.js中引入mock.js 2.在main.js中引入axios 项目目录 api.js文件代码 mock.js App.vue 页面 感谢 https://www.jianshu ......
下载安装iview,
进入根目录,用命令行启动
npm install
npm run build
npm run dev
安装mock.js和axios
npm install mock.js -save
npm install axios --save
配置mock和axios
1.在main.js中引入mock.js
2.在main.js中引入axios
项目目录
api.js文件代码
import axios from 'axios'
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 {
mockdata(url, params) {
return fetch(url, params);
}
}
mock.js
import mock from 'mockjs' // 引入mockjs
const random = mock.random // mock.random 是一个工具类,用于生成各种随机数据
let data = [] // 用于接受生成数据的数组
let size = [
'300x250', '250x250', '240x400', '336x280',
'180x150', '720x300', '468x60', '234x60',
'88x31', '120x90', '120x60', '120x240',
'125x125', '728x90', '160x600', '120x600',
'300x600'
] // 定义随机值
for(let i = 0; i < 10; i ++) { // 可自定义生成的个数
let template = {
'float': random.float(0, 100, 0, 5), // 生成0到100之间的浮点数,小数点后尾数为0到5位
'date': random.date(), // 生成一个随机日期,可加参数定义日期格式
'image': random.image(random.size, '#02adea', 'hello'), // random.size表示将从size数据中任选一个数据
'color': random.color(), // 生成一个颜色随机值
'paragraph':random.paragraph(2, 5), //生成2至5个句子的文本
'name': random.name(), // 生成姓名
'url': random.url(), // 生成web地址
'address': random.province() // 生成地址
}
data.push(template)
}
mock.mock('/data/index', 'post', data) // 根据数据模板生成模拟数据
app.vue
<template>
<table :columns="columns1" :data="datashow">
<tr>
<td></td>
</tr>
</table>
</template>
<script>
import api from "./axios/api.js";
export default {
name: "app",
data() {
return {
columns1: [
{
title: "姓名",
key: "float"
},
{
title: "年龄",
key: "float"
},
{
title: "地址",
key: "float"
}
],
datashow: []
};
},
created() {
this.getdata();
},
methods: {
getdata() {
api.mockdata("/data/index").then(res => {
console.log(res);
this.datashow = res;
});
}
}
};
</script>
页面
感谢 https://www.jianshu.com/p/3074a50d099a 给我的参考