使用Mockjs模拟接口实现增删改查、分页及多条件查询

使用Mockjs模拟接口实现增删改查、分页及多条件查询可以分为以下步骤:

  1. 安装Mock.js库

使用npm安装Mock.js库:npm install mockjs --save-dev

  1. 创建Mock接口数据

在项目中创建一个mock文件夹,其中的api.js文件用于存放Mock接口数据,具体代码如下:

import Mock from 'mockjs'

const data = Mock.mock({
  'list|10': [{
    'id|+1': 1,
    'name': '@cname',
    'age|10-30': 1,
    'gender|1': ['男', '女'],
    'email': '@EMAIL',
    'address': '@county(true)',
    'job|1': ['前端工程师', '后端工程师']
  }]
})

// 查询列表接口
Mock.mock('/api/list', 'get', () => {
  return {
    code: 200,
    message: '查询成功',
    data: data.list
  }
})

// 新增接口
Mock.mock('/api/add', 'post', (option) => {
  const dataItem = JSON.parse(option.body)
  dataItem.id = data.list.length + 1
  data.list.push(dataItem)
  return {
    code: 200,
    message: '新增成功',
    data: dataItem
  }
})

// 删除接口
Mock.mock('/api/delete', 'post', (option) => {
  const id = JSON.parse(option.body).id
  const index = data.list.findIndex(item => item.id === id)
  data.list.splice(index, 1)
  return {
    code: 200,
    message: '删除成功'
  }
})

// 更新接口
Mock.mock('/api/update', 'post', (option) => {
  const dataItem = JSON.parse(option.body)
  const index = data.list.findIndex(item => item.id === dataItem.id)
  data.list.splice(index, 1, dataItem)
  return {
    code: 200,
    message: '更新成功'
  }
})

// 分页查询接口
Mock.mock('/api/page', 'get', (option) => {
  const { current = 1, pageSize = 10 } = option.query
  const start = (current - 1) * pageSize
  const end = current * pageSize
  const list = data.list.slice(start, end)
  return {
    code: 200,
    message: '查询成功',
    data: {
      list,
      total: data.list.length
    }
  }
})

// 多条件查询接口
Mock.mock(RegExp('/api/search.*'), 'get', (option) => {
  const { name, age, gender } = option.query
  const list = data.list.filter(item => {
    let flag = true
    if (name && item.name.indexOf(name) === -1) {
      flag = false
    }
    if (age && item.age !== parseInt(age)) {
      flag = false
    }
    if (gender && item.gender !== gender) {
      flag = false
    }
    return flag
  })
  return {
    code: 200,
    message: '查询成功',
    data: list
  }
})

以上代码中创建了查询列表接口、新增接口、删除接口、更新接口、分页查询接口和多条件查询接口,其中Mock.mock()方法的三个参数分别为请求的URL、请求的方式和返回的数据。

  1. 编写请求代码

在项目中编写请求代码,具体代码如下:

import axios from 'axios'

// 查询列表
axios.get('/api/list').then(res => {
  console.log(res.data)
})

// 新增
axios.post('/api/add', {
  name: '小明',
  age: 23,
  gender: '男',
  email: 'xiaoming@qq.com',
  address: '广东省深圳市南山区',
  job: '前端工程师'
}).then(res => {
  console.log(res.data)
})

// 删除
axios.post('/api/delete', { id: 1 }).then(res => {
  console.log(res.data)
})

// 更新
axios.post('/api/update', {
  id: 2,
  name: '小明',
  age: 24,
  gender: '男',
  email: 'xiaoming@qq.com',
  address: '广东省深圳市南山区',
  job: '前端工程师'
}).then(res => {
  console.log(res.data)
})

// 分页查询
axios.get('/api/page', {
  params: {
    current: 2,
    pageSize: 3
  }
}).then(res => {
  console.log(res.data)
})

// 多条件查询
axios.get('/api/search', {
  params: {
    name: '小明',
    age: 24,
    gender: '男'
  }
}).then(res => {
  console.log(res.data)
})

以上代码中的Axios库用于发起请求,其中请求的URL与mock接口数据中的URL一致,请求的方式根据mock接口数据中的方式来确定,返回的数据是mock接口数据中返回的数据。

上述示例仅作为参考,具体实现方式根据实际情况可能会有所不同。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用Mockjs模拟接口实现增删改查、分页及多条件查询 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • Vue3 入口文件createApp函数详解

    下面就是关于「Vue3 入口文件createApp函数详解」的完整攻略。 什么是createApp函数? createApp 函数是 Vue 3 的入口函数,用于创建一个应用程序实例。在使用 Vue 3 开发应用程序时,通常是以 createApp 函数为入口。 createApp函数的语法 createApp 函数的语法如下: const app = cr…

    Vue 2023年5月28日
    00
  • 详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别

    Vue.js是一款流行的JavaScript框架,可以帮助开发者轻松构建单页面应用。在Vue.js中,主要有三个文件:main.js、App.vue和page/index.vue。它们之间的区别和联系如下。 main.js main.js 是 Vue.js 应用程序的入口文件,它负责初始化 Vue.js 应用程序,并创建一个 Vue.js 实例。在 main…

    Vue 2023年5月28日
    00
  • vue 3 中watch 和watchEffect 的新用法

    下面我就来讲解 “Vue 3 中 watch 和 watchEffect 的新用法” 的完整攻略。 1. 简介 在Vue 3中,watch 和 watchEffect 的用法得到了很大的改进。 在Vue 2中,watch 选项和 watch 函数要么立即执行要么需要手动设置 immediate 选项才能立即执行。如果你只是需要在数据变化时立即执行一段代码,那…

    Vue 2023年5月28日
    00
  • vue多次循环操作示例

    下面是关于“vue多次循环操作示例”的完整攻略,我将分两个示例说明: 示例一:多层循环嵌套 在vue中,可以使用嵌套的v-for指令来进行多层循环嵌套。比如,我们有一个任务列表,每个任务列表下面又有多个子任务列表,现在要把这些任务列表都展示出来。可以使用以下代码实现: <div v-for="(task, index) in tasks&qu…

    Vue 2023年5月27日
    00
  • 详解vue 组件之间使用eventbus传值

    下面是详解vue组件之间使用eventbus传值的完整攻略: 什么是event bus event bus 是Vue.js内置的一个在组件之间通信的机制,它可以让组件之间的通信变得更加简单方便。event bus是一个可以充当中央事件处理器的实例,可以用它来触发事件、监听事件或广播事件。 在组件中使用event bus 在Vue中使用event bus的步骤…

    Vue 2023年5月29日
    00
  • vue和webpack安装命令详解

    下面详细介绍一下如何安装 vue 和 webpack,以及相应的命令详解。 Vue.js 的安装 全局安装 可以使用以下命令全局安装 Vue CLI: npm install -g @vue/cli 如果你是 Mac 系统,并且使用了 Homebrew,则可以使用以下命令: brew install node 然后再使用全局安装命令: npm install…

    Vue 2023年5月29日
    00
  • Vue 全家桶实现移动端酷狗音乐功能

    Vue 全家桶实现移动端酷狗音乐功能 一、技术栈概述 本文的前端技术栈包括: Vue.js:一个用于构建用户界面的渐进式框架。 Vuex:Vue.js 的状态管理模式及库。 Vue-Router:Vue.js 的路由管理器。 Axios:一个基于 Promise 的 HTTP 库,用于浏览器和 Node.js。 二、项目准备 安装Vue-cli Vue-cl…

    Vue 2023年5月28日
    00
  • Vue的data为啥只能是函数原理详解

    Vue的data中为什么只能是函数呢?这是一个常见的Vue面试题,其主要原因是为了保证每个Vue组件实例都有一个独立的数据对象,在多个组件实例中互不干扰。 具体来说,当一个组件实例化时,如果data选项是一个对象,那么这个对象会被所有这个组件的实例共享,这样就会导致一个实例修改了data中的值,其他实例中的值也会发生改变,这样就无法实现组件复用了。 而当我们…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部