Vue mockjs编写假数据并请求获取实现流程

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

Vue mockjs编写假数据并请求获取实现流程

JN-Lin   2022-12-02 我要评论

当后端并未编写后台json数据,但是前端又要使用数据进行页面的编写,这是便可用mockjs编写一个假的数据源,发送ajax请求并获取数据

1.使用命令行下载mockjs

npm install mockjs --save-dev

2.在src文件目录下新建一个mock文件夹

3.在新增的mock文件夹下新建一个json文件,例:list.json 和一个mockServe.js文件

list.json文件如下

[
    {
        "date": '2016-05-02',
        "name": '王小虎',
        "address": '上海市普陀区金沙江路 1518 弄'
    },
    {
        "date": '2016-05-02',
        "name": '王小虎',
        "address": '上海市普陀区金沙江路 1518 弄'
    },
    {
        "date": '2016-05-02',
        "name": '王小虎',
        "address": '上海市普陀区金沙江路 1518 弄'
    },
    {
        "date": '2016-05-02',
        "name": '王小虎',
        "address": '上海市普陀区金沙江路 1518 弄'
    },
]

4.mockServe.js如下

// 先引入mockjs模块
import Mock from 'mockjs';
// 引入你编写json所在文件的路径
import list from './list.json';
// 模拟数据返回
Mock.mock("/mock/list", {
    code: 200,
    data: list
});

5.把mockServe.js文件引入到src文件夹下的main.js入口文件钟

import '@/mock/mockServe'

6.在src目录下的api文件夹中新建一个mockAjax.js文件

// 对于axios进行二次封装
import axios from 'axios';
// 1.利用axios对象的方法create,去创建一个axios实例
// 2.request就是axios,只不过稍微配置一下
const request = axios.create({
    // 配置对象
    // 基础路径:发请求的时候,路径中会出现mock
    baseURL:"/mock",
    // 代表请求超时的时间
    timeout:5000
})
//请求拦截器----在项目中发请求(请求没有发出去)可以做一些事情
request.interceptors.request.use((config) => {
    return config;
  });
  //响应拦截器----当服务器手动请求之后,做出响应(相应成功)会执行的
  request.interceptors.response.use((res) => {
      //相应成功做的事情
      return res.data;
    },
    (err) => {
      alert("服务器响应数据失败");
    }
  );
// 对外暴露
export default request;

7.在src目录下的api文件夹中新建一个index.js文件

import mockRequest from './mockAjax'
export const reqGetList = () => mockRequest({url:'/list',methods:'get'})

8.在相应要发送请求的页面编写请求代码

import {reqGetList} from '@/api/index.js
mouted(){
    reqGetList().then(res=>{
        console.log(res)
    })
}

经过以上步骤,便可在页面中请求到相对应的假数据

也可将api文件在入口文件统一管理

在main.js中

// 任意组件可以使用API相关的接口
import * as API from '@/api'
Vue.prototype.api = API;

然后在相应请求的页面中发送请求的代码为

this.api.reqGetList().then(res=>{
	this.dataList = res.data;
})

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们