Vue+Mockjs模拟curd接口请求的示例详解

在前后端分离的项目中常常会遇到当前端页面开发完成
但是后端接口还没好,暂不支持联调的情况下,一般我们会用到mock数据
这边简单说一下最常见且经常会遇到的curd接口模拟
注:这边可以和后端先约定好接口路径以及入参返参的字段,避免二次修改

1.安装依赖,新建js文件,在文件中导入mock.js,模拟列表数据

yarn add mockjs
const Mock = require("mockjs")

const list = []
const length = 18
for (let i = 0; i < length; i++) {
    list.push(
        Mock.mock({
            id: '@id',
            account: '@first',
            name: '@name',
            email: '@email',
            mobile: '@phone',
            sex: '@integer(0,1)',
            type: "@integer(100,101)",
            status: "@integer(0,1)",
        })
    )
}

2.查询列表接口模拟

 {
        url: "/user/getPageList",
        type: "post",
        response: config => {
            // 拿到入参
            const {
                name,
                account,
                status,
                type,
                pageNum,
                pageSize,
            } = config.body;
            // 做一些查询条件的处理
            const mockData = list.filter(item => {
                if (name && item.name.indexOf(name) < 0) return false
                if (account && item.account.toString() !== account) return false
                if (status && item.status.toString() !== status) return false
                if (type && item.type.toString() !== type) return false
                return true
            })
            // 模拟分页
            const pageList = mockData.slice((pageNum - 1) * pageSize, pageNum * pageSize)
            // 返回数据
            return {
                resultCode: "1",
                messageCode: null,
                message: null,
                data: {
                    list: pageList,
                    total: mockData.length
                }
            };
        }
    },

3.删除功能接口模拟

 {
        url: "/user/removeRow",
        type: "post",
        response: config => {
            const {
                id
            } = config.body
            // 根据id找到需要删除的元素索引
            const index = list.findIndex(item => item.id === id)
            // 调用splice删除
            list.splice(index, 1)
            return {
                resultCode: "1",
                messageCode: null,
                message: null,
                data: 'success'
            }
        }
    },

4.保存及编辑接口模拟

{
        url: "/user/saveForm",
        type: "post",
        response: config => {
            const {
                id
            } = config.body
            if (id) {
                // 关键在于id,其他入参不多赘述,格局id找到那条数据调用splice替换
                const index = list.findIndex(item => item.id === id)
                list.splice(index, 1, config.body)
            } else {
                // 如果id不存在则在列表添加一条数据
                list.unshift(
                    Mock.mock({
                        id: '@id',
                        ...config.body
                    })
                )
            }
            return {
                resultCode: "1",
                messageCode: null,
                message: null,
                data: 'success'
            }
        }
    },

如上便是简易的curd接口模拟,具体mock-server.js的配置可去网上查阅
所有接口使用module.exports导出后,在调用时就会执行mock的接口

(0)

相关推荐

  • 在Vue中使用mockjs代码实例

    前言 前后端分离的开发模式,前端需要向后端请求数据(ajax请求),但实际开发过程中,前后端会约定一份接口文档,但前后端开发进度并不一致,当后端没有完善接口功能时,前端需要在本地模拟数据返回,此时需要使用到mockjs. 安装 npm install mockjs --save-dev 目录结构 配置 1.api下的config.js:配置axios的拦截处理 import axios from 'axios' // 创建一个axios实例 const service = axios.creat

  • 详解在vue-cli项目下简单使用mockjs模拟数据

    为什么要用mockjs 实际开发中,前后端分离,前端需要后端的接口去完成页面的渲染,但是并不能等到后端成员写完接口再开始进行测试.大部分情况下,前后端需要同时进行开发.因此便需要mockjs制造随机数据来进行后端接口模拟. 看了官方文档之后一脸懵逼,这些都是什么鬼?????因此总结了一篇文章,来介绍mockjs的简单使用. 首先搭建一个vue项目 不介绍了 安装mockjs npm install mockjs --save-dev 启动项目 npm run dev 创建mock.js文件 在s

  • 详解在vue-cli项目中使用mockjs(请求数据删除数据)

    在我们的生产实际中,后端的接口往往是较晚才会出来,于是我们的前端的许多开发都要等到接口给我们才能进行,这样对于我们前端来说显得十分的被动,于是有没有可以制造假数据来模拟后端接口呢,答案是肯定的.于是今天我们来介绍一款非常强大的插件Mock.js,可以非常方便的模拟后端的数据,也可以轻松的实现增删改查这些操作,在后台数据完成之后,你所做的只是去掉mockjs:停止拦截真实的ajax,仅此而已. 搭建一个vue项目 # 全局安装 vue-cli $ npm install --global vue-

  • vue中使用mockjs配置和使用方式

    目录 mockjs配置和使用方式 需求 步骤 mock使用及mock无侵入的解决 什么是mock? 为什么要用到mock? 如何使用mock? mock无侵入式配置 mockjs配置和使用方式 需求 在前后端分离的开发中,需要前后端同时开发,但是在后端完成前,暂时是没有数据返回给前端使用的,如果先写静态后面再改,就有重复工作的内耗存在. 所以我们需要一种简单快速的模拟数据的模块,本文选的是mockjs. 步骤 1.安装mockjs npm install mockjs 2.在项目的src文件夹下

  • vue-cli项目中使用Mockjs详解

    背景 前端在早期jQuery时代时,前端功能和后端工程基本上都是合在一起,典型的就是常见的maven工程下面的webapp目录包含前端各类静态资源文件. 这个时候,我们总是会遇到这些问题: 老大,接口文档还没输出,我的好多活干不下去啊! 后端小哥,接口写好了没,我要测试啊! 测试时间不够啊,就要发版了,今天难道我有看明天的太阳升起? 诸如种种,就是一句话:劳资,再也不要指望你们了! node出现之后,准确的说是前后端分离之后,前端迫切需要一种机制,不在需要依赖后端接口开发.经过这几年的发展,有好

  • Vue+Mockjs模拟curd接口请求的示例详解

    在前后端分离的项目中常常会遇到当前端页面开发完成但是后端接口还没好,暂不支持联调的情况下,一般我们会用到mock数据这边简单说一下最常见且经常会遇到的curd接口模拟注:这边可以和后端先约定好接口路径以及入参返参的字段,避免二次修改 1.安装依赖,新建js文件,在文件中导入mock.js,模拟列表数据 yarn add mockjs const Mock = require("mockjs") const list = [] const length = 18 for (let i =

  • vue cli4下环境变量和模式示例详解

    本文介绍了vue cli4下环境变量和模式示例详解,分享给大家,具体如下: 官方文档 环境变量 一个环境变量文件只包含环境变量的键值对: NODE_ENV=development VUE_APP_BASE_URL=http://127.0.0.1:8080/ 注意: NODE_ENV - 是 "development"."production" ."test"或者自定义的值.具体的值取决于应用运行的模式 BASE_URL - 会和 vue.con

  • fetch网络请求封装示例详解

    export default ({ url, method = 'GET', data = null, }) => { // 请求配置 let options = { method } // data不为空时,它就是post请求 if (data) { options = { ...options, body: JSON.stringify(data), headers: { 'content-type': 'application/json' } } } return fetch(url, o

  • java面向对象设计原则之接口隔离原则示例详解

    目录 概念 实现 拓展 概念 小接口原则,即每个接口中不存在子类用不到却必须实现的方法,如果不然,就要将接口拆分.如下图所示定义了一个接口,包含了5个方法,实现类A用到了3个方法.实现类B用到了3个方法,类图如下: 类A没有方法4.方法5,却要实现它:类B没有方法2.方法3,但还是要实现这两个方法,不符合接口隔离原则.改造为将其拆分为三个接口,实现方式改为下图所示,符合接口隔离原则: 实现 面向对象机制中一个类可以实现多个接口,通过多重继承分离,通过接口多继承(实现)来实现客户的需求,代码更加清

  • Vue.extend实现组件库message组件示例详解

    目录 概述 Vue.extend message 组件配置对象(就是.vue文件) message 生成组件的函数 使用方法 效果图 总结 概述 当我们使用组件库的时候,某些组件并不是直接放到模板当中进行使用,而是通过api的方式调用生成组件并且挂在到我们的页面中,其中最常见的就是message组件,我们在组件库中看到的多数都是api调用的方式生成.记录自己基本实现message组件. Vue.extend 在vue中,要实现通过api方式实现组件的使用,这个aip是必不可少的,因此我们先了解下

  • vue中Axios的封装和API接口的管理示例详解

    目录 一.axios的封装 安装 引入 环境的切换 设置请求超时 post请求头的设置 请求拦截 响应的拦截 封装get方法和post方法 axios的封装基本就完成了,下面再简单说下api的统一管理. 2018.8.14更新 我们所要的说的axios的封装和api接口的统一管理,其实主要目的就是在帮助我们简化代码和利于后期的更新维护. 一.axios的封装 在vue项目中,和后台交互获取数据这块,我们通常使用的是axios库,它是基于promise的http库,可运行在浏览器端和node.js

  • Vue中关于this指向的问题示例详解

    目录 由Vue管理的函数 不被vue管理的函数 this指向大致分类 总结 在Vue中,方法体里用this调用vue实例的数据,有时会指向window,导致调用失败报错. 由Vue管理的函数 例如: computed 计算属性 watch 监视属性 filters (Vue3中已弃用且不再支持) 过滤器.... 上述属性里配置的函数不要采用箭头函数写法,因为箭头函数没有自己的this对象,使用this时会向外找到window,不会指向Vue实例,也就调用不到Vue中的数据. 不被vue管理的函数

  • VUE使用localstorage和sessionstorage实现登录示例详解

    目录 正文 localstroage就是一个加强版的COOKIE. 三者的异同 localStorage和sessionStorage操作 登录实例: Router.js 正文 今天这篇日志记录下做VUE登录的血泪史(VUE2). 当时也不知道是咋想的,就认为php给VUE提供接口,可能session就不起作用了(现在的登录是用SESSION做的). 可是登录需要做呀,用什么存储登录的用户信息呢.最开始我还真想过用COOKIE,但是安全性得不到保证,因为在每次HTTP请求的时候,都会把cooki

  • vue使用axios跨域请求数据问题详解

    axios默认是没有jsonp 跨域请求的方法的.一般来说流行的做法是将跨域放在后台来解决,也就是后台开发人员添加跨域头信息. 例如java中的 header,response.setHeader("Access-Control-Allow-Origin", www.allow-domain.com) 但是很多时候,后台出于一些原因不想修改或者已经写好jsonp的接口需要适应不同平台,此时,前端就可以单独引入依赖解决该问题了. 引入依赖 cnpm install jsonp 导入到vu

  • vue最简单的前后端交互示例详解

    一.学习 vue 面临的问题 最近想学一门前端技术防身,看到博客园中写 vue 的多,那就 vue 吧.都说 vue 的官方教程写得好,所以我就从官方教程开始学习.官方教程说"Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用."但是这个概念是个什么鬼?还是让人一头雾水嘛.而且我一开始也没有搞清楚 vue 的定位,只知道它是一个前端库,但是确实不知道它的优势是什么,还以为它是一个学会就能一劳

随机推荐