Mockjs ---封装简化
mock--index.js
只向外暴露这一个文件
// 导入扩展函数 import './extends' // 导入商品模块 import './goods'
mock--extends.js
扩展文件--自己分装的数据
// 导入模拟假数据的包 import { Random } from 'mockjs' // 自定义一个数组--随机获取这个数组里边的值--引用Random // 创建自定义Mock函数 Random.extend({ // 自定义函数名:function 函数 fruit: function () { const arr = ['榴莲', '菠萝蜜', '椰子', '苹果', '菠萝'] return this.pick(arr) } })
mock--goods.js
商品模块
// 导入模拟假数据的包 import Mock from 'mockjs' // 通过Mock.mock()来模拟API接口----GET请求 // eslint-disable-next-line no-undef Mock.mock('/api/goodslist', 'get', { status: 200, message: '获取商品列表成功', // 生成5到10条,或者直接data|5条数据 'data|5-10': [ { // mock自增函数@increment-从1开始 id: '@increment(1)', // 随机返回中文文字-显示名字 name: '@cword(2, 8)', // 随机返回一个自然数 price: '@natural(2, 10)', count: '@natural(100, 999)', // 建议使用 data字符串压缩64格式,你建议url地址请求 img: '@dataImage(78x78)' } ] }) // 通过Mock.mock()来模拟API接口---POST请求 Mock.mock('/api/addgoods', 'post', function (option) { // 这里的option是请求相关的参数 console.log(option) return { status: 200, message: '添加商品成功' } /* 外层的 mock是拦截请求的 返回参数要想引用函数,需要再次引用mock函数 return Mock.mock({ status: 200, message: '@cword(2,5)' }) */ }) // 通过Mock.mock()来模拟API接口----GET请求--请求带参数--根据id返回商品详情 /* Mock.mock('/api/getgoods/1', 'get', { data: { id: 9, name: '苹果', price: 2, img: '@dataImage(78x78)' }, status: 200, message: '获取商品详情成功' }) */ // 动态获取id---转义字符 /* Mock.mock(/\/api\/getgoods/, 'get', { data: { id: 9, name: '苹果', price: 2, img: '@dataImage(78x78)' }, status: 200, message: '获取商品详情成功' }) */ // 获取传过来的参数id--使用正则拆分 Mock.mock(/\/api\/getgoods/, 'get', function (option) { console.log(option) const res = /\/api\/getgoods\/(\d+)/.exec(option.url) console.log(res) return Mock.mock({ data: { // 转成数字 id: res[1] - 0, name: '@fruit()', // 调用自定义数组 price: 2, img: '@dataImage(78x78)' }, status: 200, message: '获取商品详情成功' }) })
然而main.js 不用变
直接导入的index.js
1 2 3 4 5 6 7 8 9 10 11 12 13 | import Vue from 'vue' import App from './App.vue' import './plugins/element.js' // 导入mock 文件---打开vue ui 安装axios依赖 import './mock/index.js' import axios from 'axios' Vue.config.productionTip = false // 全局挂载 Vue.prototype.$http = axios new Vue({ render: h => h(App) }).$mount( '#app' ) |
分类:
Vue学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义