当前位置: 首页 > 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>

效果如下:

http://www.lryc.cn/news/423921.html

相关文章:

  • 动态规划(二)——例题
  • Node.js中判断是文件还是文件夹的多种方法
  • idea 如何打war包
  • 米联客-FPGA程序设计Verilog语法入门篇连载-15 Verilog语法_跨时钟域设计
  • gradio 对话界面实现支持图片、视频正常显示
  • 催收业务怎么提高接通率
  • 动态生成sitemaps和robots.txt文件:提升SEO与网站可爬性
  • LeetCode 第二十五天 2024.8.12
  • Elasticsearch 全文查询详解
  • 20240810在荣品RK3588S-AHD开发板的预置Android13下挂载exFAT的256GB的TF卡
  • java基础进阶——log日志、类加载器、XML、单元测试、注解、枚举类
  • 《向量数据库指南》——控制Chatbot对话内容:Dopple AI的创新实践与用户体验优化
  • 构建实时数据仓库:流式处理与实时计算技术解析
  • python算术表达式遗传算法
  • net.sf.jsqlparser.statement.select.SelectItem
  • lua匹配MAC地址 正则表达式
  • Chainlit快速实现AI对话应用并将聊天数据的AWS S3 和 Azure Blob云服务中
  • 浅谈性能优化(基于C++)
  • Python 报错:ModuleNotFoundError: No module named ‘Crypto‘
  • UE(User Equipment) 和 UA(User Agent)
  • 视觉SLAM ch3补充——在Linux中配置VScode以及CMakeLists如何添加Eigen库
  • 开关电源:优化电子产品中的能源使用
  • Java语言程序设计——篇十三(2)
  • python结合csv和正则实现条件筛选数据统计分数
  • Ubuntu系统的基础操作和使用|Linux|安装|网络连接|更新与升级系统|系统维护|故障排除|监控|桌面环境|虚拟机|快捷键
  • day 38
  • 352532
  • Day.38 | 1143.最长公共子序列 1035.不相交的线 53.最大子序和 392.判断子序列
  • pytorch 3 计算图
  • 一文吃透:暗水印是什么?企业防泄密可以加暗水印吗?