详解vue3结合ts项目中使用mockjs

 更新时间:2023年07月05日 14:44:59   作者:黑萝卜不黑  
这篇文章主要为大家介绍了vue3结合ts项目中使用mockjs示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

前后端分离的开发模式

前端需要向后端请求数据(ajax请求),但实际开发过程中,前后端会约定一份接口文档,但前后端开发进度并不一致,当后端没有完善接口功能时,前端需要在本地模拟数据返回,此时需要使用到mockjs。

安装mock

npm install mockjs --save-dev

创建mock文件夹

mock下创建index.ts、types.ts 以及你需要使用到的模块的.ts文件。

inde.ts文件代码

import Mock from 'mockjs'
import { MockParams } from './types'
import api from './api'
// 需要遍历的请求
const mocks = [...api]
// 设置200-2000毫秒延时请求数据
Mock.setup({
  timeout: '200-2000'
})
// 接口拦截
export function mockRequest() {
  let i: MockParams
  for (i of mocks) {
    Mock.mock(new RegExp(i.url), i.type || 'get', i.response)
  }
}

types.ts文件代码

// 定义参数类型
export interface MockParams {
  url: string
  type: string
  data?: any
  params?: any
  response(option?: any): Record<string, unknown>
}

api.ts文件代码

const tokens = {
  admin: {
    password: 123456,
    token: 'admin-token'
  },
  editor: {
    password: 123456,
    token: 'editor-token'
  }
}
// get请求从config.url获取参数,post从config.body中获取参数
function paramObj(url) {
  const search = url.split('?')[1]
  if (!search) {
    return {}
  }
  return JSON.parse(
    '{"' +
      decodeURIComponent(search)
        .replace(/"/g, '\\"')
        .replace(/&/g, '","')
        .replace(/=/g, '":"') +
      '"}'
  )
}
const api = [
  // 登陆接口
  {
    url: '/user/login',
    type: 'get',
    response: (config) => {
      const { username } = paramObj(config.url)
      const token = tokens[username].token
      if (token) {
        return {
          code: 0,
          message: '操作成功',
          data: {
            token: token
          }
        }
      }
      return {
        code: 1,
        message: '用户信息错误,请重试~',
        data: {}
      }
    }
  }
]
export default api

最后在main.ts引入

/**
 * 测试环境下 引入自定义的mockRequest
 * 因为mockRequest不是默认导出的:export default{}
 * 所以引入时需要加大括号,这种可以引入多个
 */
if (process.env.NODE_ENV === 'development') {
  const { mockRequest } = require('../mock')
  mockRequest()
}

在shims-vue.d.ts中添加声明

declare module 'mockjs'

以上就是详解vue3结合ts项目中使用mockjs的详细内容,更多关于vue3+ts使用mockjs的资料请关注脚本之家其它相关文章!

相关文章

  • 关于ElementUI el-table 鼠标滚动失灵的问题及解决办法

    关于ElementUI el-table 鼠标滚动失灵的问题及解决办法

    这篇文章主要介绍了关于ElementUI el-table 鼠标滚动失灵的问题及解决办法,本文给大家分享问题所在原因及解决方案,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • Vertx基于EventBus发送接受自定义对象

    Vertx基于EventBus发送接受自定义对象

    这篇文章主要介绍了Vertx基于EventBus发送接受自定义对象,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • vue实现与安卓、IOS交互的方法

    vue实现与安卓、IOS交互的方法

    这篇文章主要介绍了vue实现与安卓、IOS交互的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • Vue如何解决每次发版都要强刷清除浏览器缓存问题

    Vue如何解决每次发版都要强刷清除浏览器缓存问题

    这篇文章主要介绍了Vue如何解决每次发版都要强刷清除浏览器缓存问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Vue3 如何通过虚拟DOM更新页面详解

    Vue3 如何通过虚拟DOM更新页面详解

    这篇文章主要为大家介绍了Vue3 如何通过虚拟DOM更新页面详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • VUE预渲染及遇到的坑

    VUE预渲染及遇到的坑

    这篇文章主要介绍了VUE预渲染及遇到的坑,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • Vue.js实现一个自定义分页组件vue-paginaiton

    Vue.js实现一个自定义分页组件vue-paginaiton

    这篇文章主要为大家详细介绍了Vue.js实现一个自定义分页组件vue-paginaiton的具体代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • element-ui表格数据转换的示例代码

    element-ui表格数据转换的示例代码

    这篇文章主要介绍了element-ui表格数据转换的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • vue slots 组件的组合/分发实例

    vue slots 组件的组合/分发实例

    今天小编就为大家分享一篇vue slots 组件的组合/分发实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • Vue中使用Openlayer实现加载动画效果

    Vue中使用Openlayer实现加载动画效果

    这篇文章主要介绍了Vue+Openlayer加载动画效果的实现代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08

最新评论