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

 更新时间:2022年07月11日 17:13:54   作者:就爱吃小鱼  
这篇文章主要介绍了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的接口

相关文章

  • vue中的v-model原理,与组件自定义v-model详解

    vue中的v-model原理,与组件自定义v-model详解

    这篇文章主要介绍了vue中的v-model原理,与组件自定义v-model详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • vue2.0 自定义组件的方法(vue组件的封装)

    vue2.0 自定义组件的方法(vue组件的封装)

    这篇文章主要介绍了vue2.0 自定义组件的方法(vue组件的封装),本文通过实例代码相结合的形式给大家介绍的非常详细,需要的朋友可以参考下
    2018-06-06
  • vue项目实现图形验证码

    vue项目实现图形验证码

    这篇文章主要为大家详细介绍了vue项目实现图形验证码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • vue.js实现简单的计算器功能

    vue.js实现简单的计算器功能

    这篇文章主要为大家详细介绍了vue.js实现简单的计算器功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • element表格行列拖拽的实现示例

    element表格行列拖拽的实现示例

    本文主要介绍了element表格行列拖拽的实现示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • Vue+Bootstrap收藏(点赞)功能逻辑与具体实现

    Vue+Bootstrap收藏(点赞)功能逻辑与具体实现

    这篇文章主要为大家详细介绍了Vue+Bootstrap收藏(点赞)功能逻辑与具体实现,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-10-10
  • 浅谈Vue3中watchEffect的具体用法

    浅谈Vue3中watchEffect的具体用法

    watchEffect,它立即执行传入的一个函数,同时响应式追踪其依赖,并在其依赖变更时重新运行该函数,本文主要介绍了Vue3中watchEffect的具体用法,感兴趣的可以了解一下
    2022-05-05
  • vue3.2 reactive函数问题小结

    vue3.2 reactive函数问题小结

    reactive用来包装一个对象,使其每个对象属性都具有响应性(也就是深层次响应式),这篇文章主要介绍了vue3.2 reactive函数注意点及问题小结,需要的朋友可以参考下
    2022-12-12
  • Vue项目el-upload 上传文件及回显照片和下载文件功能实现

    Vue项目el-upload 上传文件及回显照片和下载文件功能实现

    本次需求是上传多种固定格式的文件,且回显的时候,图片可以正常显示,文件可以进行下载,主要采用element的el-upload组件实现,对Vue项目el-upload 上传文件及回显照片和下载文件功能实现感兴趣的朋友跟随小编一起看看吧
    2023-12-12
  • Vue中如何实现在线预览word文件、excel文件

    Vue中如何实现在线预览word文件、excel文件

    这篇文章主要介绍了Vue中如何实现在线预览word文件、excel文件,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07

最新评论