Vite+Vue3使用MockJS

2024-01-01 22:44

本文主要是介绍Vite+Vue3使用MockJS,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在使用Vue3开发的时候,有时候没有后端或者后端接口还没有准备好,那就需要使用Mock模拟数据便于前端开发。

现在就记录一下Vite+Vue3的环境下如果使用MockJS。

版本

  • vue 3.3.11
  • mockjs 1.1.0
  • axios 1.6.3

Mockjs配置使用

使用pnpm命令安装Mockjs

pnpm install axios
pnpm install mockjs

mock模拟接口

src目录下新建文件夹mock,并新建文件index.ts,引入mockjs

import Mock from 'mockjs'

直接在上面引入,在vscode中会报错

找不到模块“mockjs”或其相应的类型声明。ts(2307)

我是使用pnpm、vite新建的vue3项目,只需要在src目录下的vite-env.d.ts文件下,加入以下配置即可

/// <reference types="vite/client" />declare module 'mockjs'

main文件下引入mockjs

main.ts文件下引入mockjs

import './mock/index'

编写模拟接口

import Mock from 'mockjs'Mock.mock("/mock/login","post", {code: 200, token:"login success token"});Mock.mock("/mock/getGoodsList","get", {code: 200, message:"请求成功",data:[{id:1,introduce:"旺仔牛奶很好喝!!!",title:"旺仔牛奶",userId:1},{id:2,introduce:"旺旺碎碎冰很冰很好吃!!!",title:"旺旺碎碎冰",userId:1},{id:3,introduce:"喜之郎品牌很好吃!!!",title:"喜之郎",userId:1},{id:4,introduce:"卫龙辣条很好吃!!!",title:"卫龙辣条",userId:1},{id:5,introduce:"德芙巧克力很好吃!!!",title:"德芙巧克力",userId:1},{id:6,introduce:"伊利牛奶很好喝!!!",title:"伊利牛奶",userId:1}]
});

axios配置使用

配置axios

import axios from 'axios'//创建axios实例
const service = axios.create({baseURL:"/mock",timeout:5000,headers:{"Content-Type":"application/json;charset=utf-8"}
})//请求拦截
service.interceptors.request.use((config)=>{config.headers=config.headers || {}if(localStorage.getItem("token")){config.headers.token = localStorage.getItem("token") || ""}return config
})// 响应拦截
service.interceptors.response.use((res)=>{const code:number = res.data.codeif(code != 200){return Promise.reject(res.data)}return res
},(err)=>{console.log(err)
})export default service

编写axios的请求接口

import service from ".";
import { LoginData } from "../type/login";//登录接口
export function login(data:LoginData) {return service({url:"/login",method:"post",data})
}//获取商品接口
export function getGoodsList(){return service({url:"/getGoodsList",method:"get",})
}

页面中使用axios请求接口

<template><div class="login-box"><div class="login-box"><el-form ref="ruleFormRef" :model="ruleForm" status-icon :rules="rules" label-width="80px"class="login-ruleForm"><h2>后台管理系统</h2><el-form-item label="账号:" prop="username"><el-input v-model="ruleForm.username" autocomplete="off" /></el-form-item><el-form-item label="密码:" prop="password"><el-input v-model="ruleForm.password" type="password" autocomplete="off" /></el-form-item><el-form-item><el-button class="loginBtn" type="primary" @click="submitForm(ruleFormRef)">登录</el-button><el-button class="loginBtn" @click="resetForm">重置</el-button></el-form-item></el-form></div></div>
</template><script lang="ts" setup>
import { reactive,ref } from 'vue';
import { LoginData } from '../type/login';
import type { FormInstance } from "element-plus";
import { login } from "../request/api";
import { useRouter } from "vue-router";const ruleForm = reactive<LoginData>({username:"",password:""});const rules = {username: [{required: true,message: "请输入你的账号",trigger: "blur",},{min: 3,max: 10,message: "账号的长度在3到10之间",trigger: "blur",},],password: [{required: true,message: "请输入你的密码",trigger: "blur",},{min: 3,max: 10,message: "密码的长度在3到10之间",trigger: "blur",},],};const resetForm = () => {ruleForm.username = "";ruleForm.password = "";};const ruleFormRef = ref<FormInstance>();const router=useRouter()//-->$routerconst submitForm = (formEl: FormInstance | undefined) => {if (!formEl) return;// 对表单的内容进行验证// valid布尔类型,为true表示验证成功,反之formEl.validate((valid) => {if (valid) {// console.log("submit!");login(ruleForm).then((res) => {console.log(res);// 将token进行保存localStorage.setItem("token", res.data.token);// 跳转页面,首页router.push('/')});} else {console.log("error submit!");return false;}});// console.log(formEl);};
</script><style lang="scss" scoped>
.login-box {width: 100%;height: 100%;background: url('../assets/bg.jpg');padding: 1px;.login-ruleForm{width: 500px;margin: 200px auto;background-color: #fff;padding: 40px;border-radius: 20px;}.loginBtn {width: 48%;}h2 {margin-bottom: 10px;}
}
</style>

这篇关于Vite+Vue3使用MockJS的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/560708

相关文章

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T