Vue项目引入mockjs实现模拟数据开发

1.安装mockjs: npm install mockjs –save-dev
2.在main.js中引入:
require('./mock') // simulation data
3.在src/api下新建index.js用来对请求进行封装
import axios from 'axios'

// 封装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{
getData(url, params) {
return fetch(url, params)
}
}

4.在main.js旁边新建mock.js文件,用来定义生成数据的类型
// 引入mockjs
const Mock = require('mockjs')
// 获取 mock.Random 对象
const Random = Mock.Random
// mock一组数据
const produceNewsData = function() {
const articles = []
for (let i = 0; i < 100; i++) { const newArticleObject = { title: Random.csentence(5, 30), // Random.csentence( min, max ) thumbnail_pic_s: Random.dataImage('300x250', 'mock的图片'), // Random.dataImage( size, text ) 生成一段随机的 Base64 图片编码 author_name: Random.cname(), // Random.cname() 随机生成一个常见的中文姓名 date: Random.date() + ' ' + Random.time() // Random.date()指示生成的日期字符串的格式,默认为yyyy-MM-dd;Random.time() 返回一个随机的时间字符串 } articles.push(newArticleObject) } return { articles: articles } } // // // Mock.mock( url, post/get , 返回的数据); Mock.mock('/news/index', 'post', produceNewsData)

5.在页面中引入请求(下面为js片段)

import api from '../../api/index'
/**
* @Author: justin.Sun
* @Date: 2018/11/7 9:24
*/
export default {
data() {
return {
data: []
}
},
created() {
this.setNewsApi()
},
methods: {
setNewsApi: function() {
api.getData('/tree/info', '')
.then(res => {
console.log(res)
this.data.push(...res.articles)
})
}
}
}

发表回复

您的电子邮箱地址不会被公开。

1 × 4 =