vue 运用mock数据的示例代码

yizhihongxing

关于“Vue 运用Mock数据的示例代码”,我这里为你提供一份完整的攻略。

什么是Mock数据

先来了解一下什么是Mock数据。简单来说,Mock数据就是在数据量不足或者无法取得真实数据时,使用伪造(Mock)的数据,来模拟真实数据从而进行开发和测试的技术。

在Vue开发中,Mock数据的使用可以让我们快速的进行组件测试,避免依赖后端接口数据来进行开发和测试,提高开发效率。

Mock.js简介

Mock.js 是一个模拟数据生成器,可以让前端开发独立于后端,快速生成数据。

实现方法

安装

第一步,我们需要安装 Mock.js。可以通过npm进行安装。

npm install mockjs --save-dev

新建Mock数据文件

在项目中新建mock/data.js文件,并编写Mock数据。

import Mock from 'mockjs'

const data = Mock.mock({
    'list|1-10': [{
        'id|+1': 1,
        'name': '@cname',
        'age|10-20': 12
    }]
})

export default data

上面的Mock数据定义了一个列表,列表中有1到10个元素。每个元素包含id,name,age三个属性,其中id从1开始递增,name为中文姓名,age在10到20之间取值。

修改webpack配置文件

在开发模式下,我们需要读取Mock数据并对请求进行拦截,返回Mock数据。在生产模式下,我们则不需要这样做。因此需要修改webpack配置文件。

在webpack.dev.conf.js文件中添加以下代码:

const express = require('express')
const app = express()
const data = require('../mock/data.js')

app.get('/api/list', (req, res) => {
    res.json({
        code: 200,
        message: '',
        data: data.list
    })
})

module.exports = {
    // ......
    devServer: {
        before: function(app) {
            app.use(express.json())
            app.use(express.urlencoded({ extended: true }))
            app.get('/api/list', function(req, res) {
                res.json({
                    code: 200,
                    message: '',
                    data: data.list
                })
            })
        }
    }
    // ......
}

上面代码中定义了一个Express服务,这个服务返回了我们定义的Mock数据。

然后在webpack.dev.conf.js文件中的devServer中添加如下代码:

before: function(app) {
    app.use(express.json())
    app.use(express.urlencoded({ extended: true }))
    app.get('/api/list', function(req, res) {
        res.json({
            code: 200,
            message: '',
            data: data.list
        })
    })
}

这段代码将我们定义的路由与获取Mock数据的方法绑定到了webpack-dev-server的before方法中。在开发模式下,请求/mock/list接口将会返回我们定义的Mock数据。

在组件中使用Mock数据

我们编写一个组件Mock.vue,并在该组件中获取Mock数据,渲染出列表。

<template>
  <div>
    <ul>
      <li v-for="item in list" :key="item.id">
        {{ item.name }} - {{ item.age }}
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  name: 'Mock',
  data() {
    return {
      list: []
    }
  },
  created() {
    this.getList()
  },
  methods: {
    async getList() {
      const res = await this.$axios('/api/list')
      if (res.code === 200) {
        this.list = res.data
      }
    }
  }
}
</script>

示例说明1

比如在开发一个购物车列表的组件时,后端接口还没有开发出来,这个时候我们可以使用Mock数据填充购物车列表展示。

可以模拟出登录,请求购物车数据和删除购物车商品等接口。

如果后端接口完成后,只需要找到对应的接口,修改url就可以了。

示例说明2

在Vue项目的测试过程中,当我们在进行一些单元测试或组件测试时,我们会涉及到各种各样的数据场景,比如:网络中断、服务器返回错误、异常等等,这个时候,我们需要模拟这些场景,来进行相应的测试。

在这些场景中,使用Mock数据,能够快速创建假数据,模拟出相应的状态,更有利于我们进行测试。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue 运用mock数据的示例代码 - Python技术站

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

相关文章

  • vue3学习笔记简单封装axios示例实现

    欢迎来到本文的完整攻略——《Vue3学习笔记:简单封装Axios示例实现》。 简介 在使用Vue.js开发Web应用的过程中,常常需要与后端交互数据。Vue.js提供了一个轻量级、高效的基于Promise的异步HTTP请求库——Axios。Axios能够发送GET、POST等各种类型的请求,并拥有诸多高级特性(如拦截器、并发请求、取消请求等),是Vue.js…

    Vue 2023年5月28日
    00
  • Vue2.0脚手架搭建

    Vue2.0脚手架搭建 什么是Vue脚手架 Vue脚手架通常是指在开始Vue项目开发时所使用的一个基础模板,它会为我们预先搭好项目的基础结构,例如自动引入Vue,预定义一些常用文件夹例如views、utils等,还会自动配置webpack等工具,从而可以省去我们手动搭建项目基础结构的时间和精力。当前比较常用的Vue脚手架工具有Vue-cli 2.x和Vue-…

    Vue 2023年5月28日
    00
  • vue3中各种类型文件进行预览功能实例

    我将为您详细讲解“Vue3中各种类型文件进行预览功能实例”的攻略。 一、问题背景 在Vue3中,如何实现对各种类型文件进行预览功能?比如图片、音频、视频等类型的文件。 二、解决方案 Vue3中可以使用第三方库来实现文件预览功能,其中比较常用的有以下几种: viewerjs:适用于图片、PDF、音频和视频等各种类型的文件预览。 vue-plyr:一个视频和音频…

    Vue 2023年5月28日
    00
  • Vue中在data里面调用method方法的实现

    在Vue中,我们可以在组件的data选项中定义数据,并且我们可以使用methods来定义方法。通常情况下,我们使用methods中的方法来操作组件数据。但是,有时我们需要在data中调用methods的方法。这时,可以使用this.$options.methods来访问methods中定义的方法。 下面是Vue中在data里面调用method方法的实现的完整…

    Vue 2023年5月28日
    00
  • vue源码解析computed多次访问会有死循环原理

    下面是关于“vue源码解析computed多次访问会有死循环原理”的完整攻略。 1. computed的原理 先来简单介绍一下computed的原理。在Vue组件中,computed是指计算属性,是一个基于响应式依赖进行缓存的数据属性,它的值在使用时会自动收集依赖,发现依赖变化时会重新计算,并且将结果缓存起来,直到依赖变化才重新计算。这样就避免了重复计算,提…

    Vue 2023年5月28日
    00
  • 在vue中实现简单页面逆传值的方法

    下面是在Vue中实现简单页面逆传值的方法的攻略。首先,我们需要明确以下两个概念: 父组件:组件树中调用子组件的那个组件。 子组件:组件树中被调用的那个组件。 实现逆传值的基本思路是,子组件将要传递的值通过事件的形式传递给父组件,从而实现逆传。具体实现步骤如下: 1. 通过emit事件传递值 在子组件中需要创建一个按钮,通过该按钮触发事件。这里我们假设子组件中…

    Vue 2023年5月28日
    00
  • vue3中如何使用ref和reactive定义和修改响应式数据(最新推荐)

    在 Vue3 中,我们可以使用 ref 和 reactive API 来定义和修改响应式数据。 使用 ref ref API 用于定义一个基本数据类型的响应式数据,例如数字、字符串、布尔值等。下面是一个例子: import { ref } from ‘vue’; const count = ref(0); // 定义一个名为 count 的响应式数据,初始值…

    Vue 2023年5月27日
    00
  • 详解如何在Vue中动态添加类名

    关于在Vue中动态添加类名的攻略,以下是一个完整的流程: 步骤一:使用v-bind绑定class 在Vue中,我们通常使用v-bind指令(简写为“:”)来绑定class的名称和值。 例如,如果你想动态地把一个红色div添加到你的网页上,你可以这样做: <template> <div :class="{ ‘red’: isRed …

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