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

Vue3+vite+ts 项目使用mockjs

1、安装mockjs

npm i mockjs

2、安装vite-plugin-mock

npm i vite-plugin-mock -D

3、安装axios

npm i axios

4.在src目录下创建mock文件夹,在文件夹内创建login.ts等文件,并在文件夹内放置以下内容(注:URL要和真实请求地址保持一致)

login.ts的内容

import { MockMethod } from "vite-plugin-mock";
export default [{url: "/nss/mock-login", // 注意,这里只能是string格式method: "post",response: () => {return {menusList: [1,2,3,4,],};},},
] as MockMethod[]

5.在vite.config.ts进行个人配置

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { viteMockServe } from 'vite-plugin-mock'import path from "path"export default defineConfig({plugins:[vue(),viteMockServe({mockPath: "./src/mock/", // 指向mock下的文件localEnabled: true ,// 是否开启开发环境,enable: command === 'serve', // 是否使用mock接口;等于serve是开发阶段使用mock接口})],resolve: {alias: {'@': path.resolve(__dirname, './src')}},
})

6.封装请求,创建axios文件夹,文件夹下创建index.ts文件,文件内放置以下内容

import axios from 'axios'
// 创建一个 axios 实例
const APICLice={Request(key,data,url){return new Promise((resolve,reject)=>{const serviceS = axios.create({baseURL: '/nss', // 所有的请求地址前缀部分timeout: 60000, // 请求超时时间毫秒withCredentials: true, // 异步请求携带cookie// headers: {// 设置后端需要的传参类型// 'Content-Type': 'application/json',// 'token': 'your token',// 'X-Requested-With': 'XMLHttpRequest',// },})// 添加请求拦截器serviceS.interceptors.request.use(function (config) {// 在发送请求之前做些什么return config},function (error) {// 对请求错误做些什么console.error('请求错误',error)return Promise.reject(error)})// 添加响应拦截器serviceS.interceptors.response.use(function (response) {// 对响应数据做点什么resolve(response.data)return response.data},function (error) {return Promise.reject(error)})return  serviceS({method: 'post',   url,data:data,})})}
}export default APICLice

7.使用封装的请求:创建api文件夹,例:login.ts,文件夹下放置以下内容

// 导入axios实例
import request from '@/axios/index'
export function login(params){return request.Request('',params,'/mock-login')
}

8.页面内使用

<template><div class="test"><h1>我是登录页面</h1><button @click="increment">点击我开始登录了</button><span v-show="showLogin">登录后我就开始显示了{{ dataList }}</span></div>
</template>
<script setup>
import { ref } from 'vue'
import { login } from '@/api/login/index'
let showLogin = ref(false)
let dataList = ref([])
function increment() {login({}).then((res) => {console.log('login', res)dataList.value = resshowLogin.value = true})
}
</script><style>
</style>

效果如下:

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【C++ 面试 - 基础题】每日 3 题(十六)
  • 质量对中国开发商提升游戏品牌信誉和信任度的影响
  • Java设计模式之中介者模式
  • 【SpringBoot】SpringBoot框架的整体环境搭建和使用(整合Mybatis,Druid,Junit4,PageHelper,logback等)
  • Android 13 移植EthernetSettings/Ethernet更新
  • Java设计模式之策略模式实践
  • MATLAB R2023b配置Fortran编译器
  • java基础进阶——log日志、类加载器、XML、单元测试、注解、枚举类
  • 使用openlayers给地图添加内发光、外发光、内外阴影、三维立体效果
  • 可乐机的设计验证
  • 125. 验证回文串【 力扣(LeetCode) 】
  • 设计模式 - 状态模式
  • 详解使用Goalng+Redis实现分布式锁
  • haralyzer 半自动,一次性少量数据采集快捷方法
  • C++系列-继承中的对象模型
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • Create React App 使用
  • Debian下无root权限使用Python访问Oracle
  • Docker 笔记(2):Dockerfile
  • echarts花样作死的坑
  • GraphQL学习过程应该是这样的
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • Java精华积累:初学者都应该搞懂的问题
  • JS函数式编程 数组部分风格 ES6版
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • PHP那些事儿
  • vue 个人积累(使用工具,组件)
  • webgl (原生)基础入门指南【一】
  • 前端自动化解决方案
  • 网页视频流m3u8/ts视频下载
  • 再次简单明了总结flex布局,一看就懂...
  • 交换综合实验一
  • ​虚拟化系列介绍(十)
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (07)Hive——窗口函数详解
  • (12)目标检测_SSD基于pytorch搭建代码
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (24)(24.1) FPV和仿真的机载OSD(三)
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (第一天)包装对象、作用域、创建对象
  • (二)Kafka离线安装 - Zookeeper下载及安装
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (三)终结任务
  • (正则)提取页面里的img标签
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .Net Core和.Net Standard直观理解
  • .net 程序发生了一个不可捕获的异常
  • .net程序集学习心得
  • .NET应用架构设计:原则、模式与实践 目录预览