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

21 篇文章 2 订阅

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

在vite中使用mockjs进行模拟数据,需要借助新的依赖进行使用

一、安装mockjs

yarn add mockjs -S 或 npm i mockjs -D

二、安装vite-plugin-mock

npm i vite-plugin-mock -D

三、在src/mock/source文件夹下创建user.ts

请添加图片描述

在index.vue中放入以下内容:

import { MockMethod } from 'vite-plugin-mock'

export default [
  {
    url: '/api/getUserInfo', // 注意,这里只能是string格式
    method: 'get',
    response: () => {
      return {
        menusList: [{
          id: '1',
          title: '南辰',
          subMenuList: [
            {
              id: '11',
              title: '南',
              path: '/user/nan'
            },
            {
              id: '12',
              title: '小',
              path: '/user/xiao'
            },
            {
              id: '13',
              title: '辰',
              path: '/user/chen'
            }
          ]
        }, {
          id: '2',
          title: '希',
          subMenuList: [
            {
              id: '21',
              title: '玩游戏',
              path: '/user/play'
            }
          ]
        }]
      }
    }
  }
] as MockMethod[] // 这里其实就是定义数据格式的,不了解的同学可以参考typescript的官方文档

四、开发环境配置

如果只是本地开发环境时使用,直接看下面即可步骤

  • 在vite.config.ts进行个人配置
import { viteMockServe } from 'vite-plugin-mock'

export default defineConfig({
  plugins: [
    viteMockServe({
      mockPath: "./src/mock/source", // 解析刚刚user.ts的位置
      localEnabled: true // 是否开启开发环境
    })
  ]
})

在页面中引入

<template>
  <div>{{name.name}}</div>
  <div>{{nc}}</div>
</template>

<script lang='ts'>
import { useRoute } from "vue-router"; //引入路由组件
import { onMounted, ref } from "vue";
import axios from "axios";
export default {
  setup() {
    const nc = ref("");
    onMounted(() => {
      axios.get("/api/getUserInfo").then((res) => {
        console.log(res);
        nc.value = res.data.menusList[0].title;
        console.log(nc.value);
      });
    });
    const $route = useRoute();
    const name = $route.query;
    return {
      name,
      nc,
    };
  },
};
</script>
<style scoped>
</style>

打印效果如下:
请添加图片描述

如果想使用随机数可以看接下来的步骤

如果只要随机数则直接生成即可
请添加图片描述
在这里插入图片描述

想要随机数在return中放入随机条件即可。

如果想要用随机数中的图片就需要从mockjs中引入一个Random方法
在这里插入图片描述
在页面上进行循环:

<template>
  <div v-for="(item,index) in list" :key="index">
   <img :src="item.image" alt="">
   <p>{{item.id}}</p>
  </div>
</template>

<script lang='ts'>
import { useRoute } from "vue-router"; //引入路由组件
import { onMounted, ref } from "vue";
import axios from "axios";
export default {
  setup() {
    const list = ref("");
    onMounted(() => {
      axios.get("/api/getUserInfo").then((res) => {
        console.log(res);
        let lis = res.data.list;
        console.log(list.value =lis);
      });
    });

    return {
      nc,
      list,
    };
  },
};
</script>
<style scoped>
</style>

这里的Random.image()方法是从官网上拿下来用的
在这里插入图片描述
效果如下:
在这里插入图片描述

实现随机不同的图片+字段

import { MockMethod } from 'vite-plugin-mock'
export default [
  {
    url: '/api/getUserInfo', // 注意,这里只能是string格式
    method: 'get',
    response: () => {
      return {
        'list|1-10': [{
          // 属性 id 是一个自增数,起始值为 1,每次增 1
          'id|+1': 1,
        /*   image: Random.image() */
        "title": "@ctitle",
        "color":'@color',
        "image":"@image('','@color')"
        }],
      }
    }
  }
] as MockMethod[] 

index.vue

<template>
<div v-for="(item,index) in list" :key="index">
 <img :src="item.image" alt="">
 {{item.title}}
 </div>
</template>

<script lang='ts'>
import { useRoute } from "vue-router"; //引入路由组件
import { onMounted, ref } from "vue";
import axios from "axios";

export default {
  setup() {
    const list = ref("");
    onMounted(() => {
      axios.get("/api/getUserInfo").then((res) => {
        console.log(res);
        let lis = res.data.list;
        console.log(lis);
        console.log(list.value = lis);
      });
    });
    return {
      list,
    };
  },
};
</script>
<style scoped>
</style>

在这里插入图片描述
效果如下:
在这里插入图片描述

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
Vue3 Vite项目使用Mock.js,你可以按照以下步骤进行配置: 1. 首先,创建一个Vue3 Vite项目并进入项目文件夹。 2. 执行`yarn`命令安装项目依赖。 3. 安装axios、mockjsvite-plugin-mock插件,可以使用以下命令进行安装:`yarn add axios mockjs vite-plugin-mock`。 4. 修改vite.config.js文件,引入vite-plugin-mock插件,并配置mockPath为"./mock/"。示例代码如下: ```javascript import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import { viteMockServe } from 'vite-plugin-mock' export default defineConfig({ plugins: \[ vue(), viteMockServe({ mockPath: "./mock/" }) \] }) ``` 5. 在根目录下创建一个mock文件夹,用于存放mock数据。 6. 在需要使用mock数据的组件中引入并使用Mock.js。你可以在组件中使用Mock.js生成模拟数据。例如: ```javascript import Mock from 'mockjs' const data = Mock.mock({ 'list|1-10': \[{ 'id|+1': 1, 'name': '@cname', 'age|18-60': 1 }\] }) console.log(data) ``` 这样,你就可以在Vue3 Vite项目使用Mock.js来模拟接口数据了。 #### 引用[.reference_title] - *1* *2* [在vitevue项目使用mockjs](https://blog.csdn.net/lhkuxia/article/details/125000115)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Vue3+Vite项目使用mockjs模拟数据](https://blog.csdn.net/m0_72788309/article/details/129534945)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Southern Wind

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值