技海泛舟(个人技术研究)

  • 首页
  • 日积月累
  • 学习计划
  • 随想
  • project
  • 关于
技海泛舟
一个技术宅的博客
  1. 首页
  2. 日积月累
  3. vue
  4. 正文

vue3+mockjs

2022年3月22日 987点热度

https://gitee.com/blaunicorn/vue3-vite-mock
F:\code-tencent\vue-study\vue3-mock-demo\vite-project

// vite-project\src\App.vue
<script setup>
// This starter template is using Vue 3 <script setup> SFCs
// Check out https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup
import HelloWorld from "./components/HelloWorld.vue";
import axios from "axios";
import { onMounted, reactive } from "vue";
const state = reactive({
  list: [],
});
let getList = () => {
  let params = {
    // name: 123,  //mock 默认是url带参数解析的,
  };
  axios.get("/api/get/news", { params }).then((res) => {
    state.list = res.data;
  });
};
let postList = () => {
  let data = { id: 1 };
  axios.post("/api/post/news", { data }).then((res) => {
    state.list = res.data;
  });
};
onMounted: {
  getList();
}
</script>

<template>
  <div>get请求的数据:{{state.list}}</div>
  <input
    type="button"
    value="getList"
    @click="getList"
  >
  <div>post请求的数据:{{state.list}}</div>
  <input
    type="button"
    value="postList"
    @click="postList"
  >
  <img
    alt="Vue logo"
    src="./assets/logo.png"
  />
  <HelloWorld msg="Hello Vue 3 + Vite" />
</template>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

// vite-project\src\main.js
import { createApp } from 'vue'
import App from './App.vue'

import '../mock/index'

createApp(App).mount('#app')

// vite-project\mock\index.js

import Mock from 'mockjs'
console.log('mock', Mock)

const data = Mock.mock({
  // 'string|4': 'test'
  string: '@cword(3,8)',
  title: '@ctitle',
  sentence: '@csentence(50,200)',
  content: '@cparagraph', // 随机生成段落
  'number|80': 2,  //  生辰指定数字
  'number|1-999': 1, //  随机生成范围数字
  id: '@increment()', // 随机生成增量id
  //  生成姓名+身份证号+地址
  name: '@cname',
  idCard: Mock.Random.id(),
  // idCard: '@id(18)',
  address: '@city(true)',
  guid: Mock.Random.guid(), // 随机uid
  // 生成图片:图片大小、图片背景色、图片前景色、图片格式、图片文字
  img: '@image("300*250","#ff0000","#fff","gif","@cword")',
  // 生成时间
  birth: Mock.Random.datetime("yyyy-MM-dd HH:mm:ss"),  // 值是指定格式的日期字符串
  birth2: new Date(Mock.Random.datetime("yyyy-MM-dd HH:mm:ss")),  // 值是 Date 类型
  'status|1': ['published', 'draft'], // 随机选择1个
  // 数组  指定长度:'data|5'  指定范围'data|5-10'
  'list|1-10': [{ name: '@name()', address: '@city', id: '@increment(2)' }]

})

console.log(data)

// mock拦截请求 参数1 url 2 请求类型 3 返回对象或函数
// 设置拦截ajax请求的相应时间
Mock.setup({
  timeout: '200-600'
});
Mock.mock('/api/get/news-demo', 'get',
  {
    code: 200,
    message: 'success',
    data: data.list
  })
// 定义get请求
Mock.mock('/api/get/news', 'get', (config) => {
  console.log(config)
  return {
    code: 200,
    message: 'success',
    data: data.list
  }
})
//  定义post请求  
Mock.mock('/api/post/news', 'post', (config) => {
  console.log(config)
  return {
    code: 200,
    data: data
  }
})
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2022年3月24日
< 上一篇
下一篇 >
归档
  • 2024 年 11 月
  • 2024 年 8 月
  • 2024 年 5 月
  • 2024 年 2 月
  • 2023 年 12 月
  • 2023 年 11 月
  • 2023 年 9 月
  • 2023 年 6 月
  • 2022 年 12 月
  • 2022 年 11 月
  • 2022 年 10 月
  • 2022 年 9 月
  • 2022 年 8 月
  • 2022 年 7 月
  • 2022 年 6 月
  • 2022 年 5 月
  • 2022 年 4 月
  • 2022 年 3 月
  • 2022 年 2 月
  • 2022 年 1 月
  • 2021 年 12 月
  • 2021 年 11 月
  • 2021 年 10 月
  • 2021 年 5 月
分类
  • Android
  • Arduino
  • cordova
  • css
  • go
  • html5
  • JavaScript
  • nodejs
  • oracle
  • project
  • system
  • uni-app
  • vscode
  • vue
  • 学习计划
  • 摘抄
  • 随想
最新 热点 随机
最新 热点 随机
windows安装mysql ,VSCODE连接MySQL数据库 创建api的逻辑 观看七战奥运会 德国波尔告别 go utils工具 Go语言中的sort包帮我们实现了对任一类型的数组进行排序。 vue + go安装
某党务工作公众号 Android存储方式之SharedPreference 碰撞的小球 Arduino+mqtt 实现本地led显示和远程控制继电器 学习计划

COPYRIGHT © 技海泛舟(个人技术研究). 2021-2023. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

黑ICP备19002110号-1

黑公网安备 23060202000432号