当前位置: 首页 > article >正文

Axios-Mock-Adapter mock数据

摘要:最近一个项目没有后端配合,临时使用使用Axios-Mock-Adapter来mock数据的逻辑,简单记录下使用步骤如下

1. 安装Axios-Mock-Adapter

        首先,安装Axios-Mock-Adapter。Axios Mock Adapter 是一个用于模拟 Axios 请求和响应的库,主要用于测试和开发环境中。它通过拦截 Axios 的请求来提供自定义的响应,从而避免在测试中进行实际的网络请求。

npm install axios-mock-adapter --save

        接着,创建Axios实例,这一步src/utils/request.js中已完成

import axios from 'axios'

const service = axios.create({
  baseURL: process.env.VUE_APP_BASE_API,
  timeout: 5000
})

export default service

2. 创建模拟数据文件

        然后,创建模拟数据文件src/mock/index.js配置 Axios Mock Adapter,以模拟请求和响应。创建一个 Mock Adapter 实例并将其与Axios实例关联。这样,当发出请求时,Mock Adapter 就会拦截这些请求

// import axios from 'axios'
import AxiosMockAdapter from 'axios-mock-adapter'
import request from '@/utils/request' // 引入上面创建的 Axios 实例

const mock = new AxiosMockAdapter(request)

// Mock GET 请求
mock.onGet('/api/data').reply(200, {
  message: 'Hello World'
})

// Mock POST 请求
mock.onPost('**/api/sys/login**').reply(200, {
  data: {
    token: '8fa22e88-f6ab-4a4b-930a-a5e62c4c74e8'
  },
  message: '登陆成功',
  success: true
})

export default mock

3. 引入文件并在组件中使用

        再然后,在在主入口文件main.js中引入 Mock

import '@/styles/index.scss'
// 导入svgIcon
import installIcons from '@/icons'
// 导入mock
import '@/mock/index.js'

const app = createApp(App)
installElementPlus(app)

        最后,在Vue组件中使用Mock 数据,此处调用登录接口。当你使用 Axios 发送请求时,如果请求匹配已定义的 Mock 响应,Mock Adapter 会返回你设置的响应,而不执行真实的网络请求。

// 登陆动作处理
const loading = ref(false) // 使用ref声明的数据默认值false
const loginFormRef = ref(null) // 使用ref声明的数据默认值null,用于获取组件实例
const store = useStore()
const handleLogin = () => {
  // 1.进行表单校验
  loginFormRef.value.validate((valid) => { // vue3的compsition API中没有this.refs
    if (!valid) return
    // 2.触发登陆动作
    loading.value = true
    store
      .dispatch('user/login', loginForm.value)
      .then((res) => {
        console.log(res)  //返回数据:data: {token: '8fa22e88-f6ab-4a4b-930a-a5e62c4c74e8'},message: "登陆成功",success: true
        loading.value = false
        // 3. TODO:进行登陆后处理
      })
      .catch((err) => {
        console.log(err)
        loading.value = false
      })
  })
}

        启动项目验证。


http://www.kler.cn/a/376494.html

相关文章:

  • Mybatis学习笔记(二)
  • 机器学习之fetch_olivetti_faces人脸识别--基于Python实现
  • Spring Cloud Ribbon:负载均衡的服务调用
  • Python 工具库每日推荐 【Sphinx】
  • Spring Boot 跨域解决方案
  • GNSS和PTP时间同步的基础原理介绍
  • 《卷积、卷积操作、卷积神经网络原理探索》
  • 3. 探索 Netty 的粘包与拆包解决方案
  • ARM base instruction -- mneg
  • 正点原子阿尔法ARM开发板-IMX6ULL(十一)——IIC协议和SPI协议--AP3216C环境光传感器和ICM20608六轴传感器
  • 在Zetero中调用腾讯云API的输入密钥的问题
  • 【Linux】信号三部曲——产生、保存、处理
  • ES跟Kafka集成
  • git 切换分支
  • 一个运维牛人对运维规则的10个总结
  • 秒懂Linux之Socket编程(四)
  • 支持向量机SVM与自然语言处理基础小结
  • 2024.10.2校招 实习 内推 面经
  • 函数基础,定义与调用。作用域,闭包函数
  • 升序数组两两不相等
  • C语言稀有关键词:柔性数组
  • 【创建型】单例模式
  • Hypack 应用于地形测量的高级设置操作要领
  • Nginx 的 Http 模块介绍(上)
  • Git - 两种方式撤销已提交到远端仓库的记录并删除提交记录
  • vite 创建了一个项目后,如何实现工程化