600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Vue3+Vite项目使用mockjs模拟数据

Vue3+Vite项目使用mockjs模拟数据

时间:2024-04-10 03:41:05

相关推荐

Vue3+Vite项目使用mockjs模拟数据

一、安装mockjs

yarn add mockjs -S 或 npm i mockjs -D

二、安装vite-plugin-mock

npm i vite-plugin-mock -D

三、在src/mock文件夹下创建index.js 文件

1. 在index.js 写你想要的数据

注意 :如果里面有图片要放到public/imgs文件夹里面,要不然图片渲染不到页面上,

export default [{url: "/api/getUsers", //这里只能是string格式method: "get",response: () => {return {code: 0,message: "ok",data: {'rows|10': [{id: '@guid',name: '@cname','age|20-30': 23,'job|1': ['前端工程师', '后端工程师', 'UI工程师', '需求工程师']}]},}}},{url:'/api/bannerlist',method:'get',response:()=>{return {code: 200,message: "ok",list:[{"id":"1","img": "../../public/imgs/17.jpg" // 注意如果里面有图片要放到public/imgs文件夹里面,要不然图片渲染不到页面上,},{"id":"1","img": "../../public/imgs/18.jpg"},]}}},{url: '/api/getUserInfo', // 注意,这里只能是string格式method: 'get',response: () => {return {menusList: [{id: '1',title: '南辰',subMenuList: [{id: '11',title: '南',path: '/user/nan'},}]}]

四、安装 axios

npm install axios

1.在 axios 文件夹下面得index.js 引入

import axios from "axios";// 假数据const instance = axios.create({baseURL: '',timeout: 5000,headers: {'X-Custom-Header': 'foobar'}});// 添加请求拦截器instance.interceptors.request.use(function (config) {// 在发送请求之前做些什么return config;}, function (error) {// 对请求错误做些什么return Promise.reject(error);});// 添加响应拦截器instance.interceptors.response.use(function (response) {// 对响应数据做点什么return response.data;}, function (error) {// 对响应错误做点什么return Promise.reject(error);});export default instance

五、封装 axios 统一管理 api

import http from '../utils/index'// 假数据export const list = () => {return http({method: 'get',url: 'api/getUsers' // 必须和 mock 里面的url 操持一致})}export const person=()=>{return http ({method:'get',url:'/api/getUserInfo'})}

六 、在vite.config.s进行个人配置

import { fileURLToPath, URL } from 'node:url'import { defineConfig } from 'vite'import vue from '@vitejs/plugin-vue'import { viteMockServe } from 'vite-plugin-mock'// https://vitejs.dev/config/export default defineConfig({plugins: [vue(),// mock 假数据viteMockServe({mockPath: "./src/mock/", // 解析,路径可根据实际变动localEnabled: true, // 此处可以手动设置为true,也可以根据官方文档格式supportTs: false,logger: true})],resolve: {alias: {'@': fileURLToPath(new URL('./src', import.meta.url))}}})

七、组件引入使用

<template><div class="about"><h1>This is an about page</h1></div></template><script setup>import {list ,person} from '../api/index'import { onMounted } from 'vue';onMounted(async()=>{let res=await list()console.log(res);let data= await person()console.log(data);})</script><style></style>

八、打印结果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。