Vue示例之使用Mock模拟数据与Axios请求数据

简述

由于后端与前端同时开发,而后端接口还未开发完成,前端又急需数据进行测试。那么mock模拟数据就是很好的选择,当然还有其他方式,以下做一个mock模拟数据示例,供参考学习。

前期准备

1.此示例中用到了elementUI(安装引入方式可移步到我的其他文章)
2.axios插件
安装

npm install --save axios vue-axios
或
npm install axios

在main.js中引入

import axios from 'axios'
import VueAxios from 'vue-axios'
Vue.use(VueAxios, axios)

使用方式

Vue.axios.get(api).then((response) => {
  console.log(response.data)
})

this.axios.get(api).then((response) => {
  console.log(response.data)
})

this.$http.get(api).then((response) => {
  console.log(response.data)
})

3.mock插件
安装

npm install mockjs
或者
npm install --save mockjs
(安装脚手架cli可使用)或者
cnpm install --save mockjs 

编写数据

1.创建文件夹
a.在src下面创建一个mock文件夹
b.在mock文件夹的下创建data文件夹(存放数据)
2.编写数据文件
a.在mock文件夹下创建index.js文件来写代码
b.data文件夹下创建home.json文件用来放返回来的数据
3.编写模拟数据
图示


图示数据

源码:

{
  "msg":"测试接口数据成功!",
  "data":[
    {"name":"abc","sex":"男", "age":"15","home":"北京"},
    {"name":"123","sex":"男","age":"20","home":"湖南"},
    {"name":"qwe","sex":"女","age":"25","home":"北京"},
    {"name":"wer","sex":"男","age":"30","home":"天津"},
    {"name":"sdf","sex":"女","age":"45","home":"上海"}
  ]
}

引入mock

在mock文件夹下的index.js中引入


引入数据文件

源码:

// 引入ANGLE_instanced_arrays
var Mock=require("mockjs")
// 请求地址,请求方法(post/get),require(请求数据地址)
Mock.mock("/test/user","get",require("./data/home.json"))
入口文件中引入

在main.js中引用mock

//引用mock
//名字默认写index.js,在引入的时候就可以不用写文件名
//require(".mock/index.js")
//mock里面默认请求index.js
require("./mock")
图示

请求数据

1.局部引用:单独页面请求数据,渲染当前页
2.全局引用:在main.js中引入

// 全局引用axios
import axios from "axios"
Vue.prototype.$axios=axios

创建组件






特别提醒:

由于在此使用了elementui运行时报错
最初赋值数据如下:

this.testDatas=ok.data

报错:

Error in render: "TypeError: data.reduce is not a function"

解决方式:
在请求数据给数组时要加data

 // 把请求到的数据给testDatas数组
        this.testDatas=ok.data.data

效果显示:


效果图

你可能感兴趣的:(Vue示例之使用Mock模拟数据与Axios请求数据)