在 vue 框架中使用 Mock 模拟后台数据
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
在前端开发的时候,在某些情况下后端接口没有准备好,但页面需要数据渲染来查看效果,此时可以使用 Mock 这个包来生成随机数据,方面前端获取数据渲染页面。
一、Mock 是什么?
生成随机数据,拦截 Ajax 请求。不需要改变现有代码,就可以拦截 Ajax 请求,返回随机数,让前端脱离了后端,可进行独立开发,;可生成的数据类型十分丰富,涵盖了随机的文本、数字、布尔值、日期、邮箱、链接、图片、颜色等,模拟各种场景。
二、Mock 使用
1.Mock 基本使用
使用 npm install mockjs下载包
import Mock from mockjs // es6 语法 在 node 环境下可以使用下面代码 const Mock = require(mockjs)
1.1生成模拟数据的两种方法
方法一:数据模板 生成随机数
// 调用 Mock.mock() 方法生成随机数据
let data = Mock.mock({
username|1-10: w, // 随机生成 1-10 次 w 字符串
num|1-30: 0 // 随机生成 1-30 之间的数字
})
console.log(data) // { username: wwwwwwww, num: 3 }
方法二:数据占位符 生成随机数
数据占位符使用
let data = Mock.mock( {
id: @id(), // @id() 随机生成 id
name: @cname, // @cname 随机生成中文名字
date: @date(yyyy-MM-dd), //@date(yyyy-MM-dd) 随机生成日期
content: @paragraph(), // 随机生成描述
email: @email(),// 随机生成邮箱
})
以上对常用的随机数据做了一个简单的介绍,更详细、更具体的方法建议查看链接: .
2.在 vue 中使用 Mock
2.1创建项目并导包
首先创建 vue 项目:Vue create demo,清空默认模板 安装 axios和mockjs两个包:npm install axios mockjs
2.2创建 mock 文件
src/mock/index.js 写入
import Mock from mockjs
// 监听对应的端口 api/userinfo
Mock.mock(api/userinfo, {
id: @id(), // @id() 随机生成 id
name: @cname, // @cname 随机生成中文名字
date: @date(yyyy-MM-dd), //@date(yyyy-MM-dd) 随机生成日期
content: @paragraph(), // 随机生成描述
email: @email(),// 随机生成邮箱
})
在main.js文件代码如下
import Vue from vue
import App from ./App.vue
import axios from axios
import ./mock // 一定要在 mian.js 导入 mock 文件
axios.baseURL = http://localhost:9000 // 本项目的 localhost 和对应的端口号
Vue.prototype.$http = axios // 设置全局的 axios 方法
Vue.config.productionTip = false
new Vue({
render: h => h(App),
}).$mount(#app)
在 App.vue中代码如下
<template>
<div id="app">
<button @click="getRandomData">随机生成数据</button>
<h3>id:{
{
userinfo.id }}</h3>
<div>姓名:{
{
userinfo.name }}</div>
<br>
<div>生日:{
{
userinfo.date }}</div>
<br>
<div>邮箱:{
{
userinfo.email }}</div>
<br>
<div>描述:{
{
userinfo.content }}</div>
</div>
</template>
<script>
export default {
name: app,
data () {
return {
userinfo : {
}
}
},
methods: {
getRandomData() {
this.$http.get(api/userinfo).then(({
data}) => {
this.userinfo = data
})
}
}
}
</script>
效果展示
点击按钮前。 点击按钮后,生成随机数据,每点击一次就可以生成新的随机数据。
