vue2中使用mock数据发送请求

1.安装

npm i mockjs@1.1

 2.准备json数据

说明:mock数据需要的图片放置到public文件夹中(原封不动的打包到dist文件夹)

[{"id": "1","imgUrl": "/images/banner1.jpg"},{"id": "2","imgUrl": "/images/banner2.jpg"},{"id": "3","imgUrl": "/images/banner3.jpg"},{"id": "4","imgUrl": "/images/banner4.jpg"}
]

3.创建mockServe.js文件

说明:默认暴露json格式,图片等。mock数据:第一个参数请求地址,第二个参数:请求数据。

//说明:一定要大写
import Mock from "mockjs"// 把json数据格式引入进来,webpack默认暴露,图片,json格式文件
import banner from "./banner.json"import floor from "./floor.json"Mock.mock("/mock/banner",{code:200,data:banner})
Mock.mock("/mock/floor",{code:200,data:floor})

 4.引入main.js

说明:就是向引入图片一样;将Mock.mock语句放在main.js中是为了确保在整个应用程序运行时,模拟接口能够正常工作,而不是在某个特定组件或模块中只生效一次。这样做可以使模拟数据在整个应用程序范围内生效,方便进行开发和测试。

// 引入mock数据
import "@/mock/mockServe";

5. 重写axios

//对axios进行二次封装
import axios from "axios"
import "nprogress/nprogress.css"// 引入进度条import nprogress from "nprogress"// start代表进度条开始,done表示进度条结束
const requests =axios.create({//   发请求的时候自动出现apibaseURL:"/mock",//   请求超时的时间timeout:5000,})
// 请求拦截器,
requests.interceptors.request.use((config)=>{// config对象中有一个headers请求头// 进度条开始nprogress.start()return config
})// 响应拦截器
requests.interceptors.response.use((res)=>{// 成功的回调函数,服务器相应数据回来以后,响应拦截器可以检测到// 进度条结束nprogress.done()return res.data
},error=>{console.log(error);return Promise.reject(new Error("fail"))
})export default requests

 6.index.js

import mockRequest from "./mock";
// 轮播图
export const reqGetBannerList = () => {return mockRequest.get("/banner");
};

7.store

说明:store里面的index.js。

//home模块的小模块
import { reqCatgoryList,reqGetBannerList,reqFloorList } from "@/api"const state={//state中的默认值为空,服务器返回的值进行初始花,服务器返回的//  数组,就返回数组,对象也是categoryList:[],bannerList:[],floorList:[]
}
const actions={// 通过接口函数向服务器发送数据async categoryList({commit}){let result =await reqCatgoryList()if(result.code===200){commit("CATEGORYLIST",result.data)}},// 获取首页轮播图async getBannerList({commit}){const result=await reqGetBannerList()if(result.code===200){commit("GETBANNERLIST",result.data)}},// 获取floor数据async getFloorList({commit}){const result=await reqFloorList()if(result.code===200){commit("GETFLOORLIST",result.data)}}
}const mutations={CATEGORYLIST(state,categoryList){state.categoryList=categoryList},GETBANNERLIST(state,bannerList){state.bannerList=bannerList},GETFLOORLIST(state,floorList){state.floorList=floorList}}const getters={}export default {state,mutations,actions,getters
}

8.vue页面

说明:vue页面中的script标签

import { mapState } from "vuex";
// 引入swipter
export default {name: "",data() {return {};},mounted() {//派发action,将数据存储到仓库this.$store.dispatch("getBannerList");// 因为dispathch设置到异步请求是,// 导致v-for结构还没完成},computed: {...mapState({bannerList: (state) => state.home.bannerList,}),},
};

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/55188.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Orangepi 3 lts 的云台相机

利用orangepi 3 lts 和arduino nano 制作了一个云台相机,可用于室内监控。 硬件: orangepi 3 ,arduino nano ,usb相机,180度舵机两个 WeChat_20230806213004 软件: 整体采用mqtt进行消息的中转。 相机采用python 利用opencv…

Python3 处理PDF之PyMuPDF 入门

PyMuPDF 简介 PyMuPDF是一个用于处理PDF文件的Python库,它提供了丰富的功能来操作、分析和转换PDF文档。这个库的设计目标是提供一个简单易用的API,使得开发者能够轻松地在Python程序中实现PDF文件的各种操作。 PyMuPDF的主要特点如下: 跨平台兼容性&a…

ACL访问控制列表

ACL介绍 acl: 访问控制列表 步骤: 创建一个访问控制规则调用这个规则 ACL的分类和标识 ACL的匹配顺序以及匹配结果 拓扑图 配置 # 首先通过三层交换的实验做一次 ....## 检测ip地址 display ip interface brief## 在交换机2上做配置 [S2]acl name test ?IN…

【Java可执行命令】(十六)诊断命令请求发送工具 jcmd:提供一种简单而强大的方式来管理和监控 Java 进程 ~

Java可执行命令之jcmd 1️⃣ 概念2️⃣ 优势和缺点3️⃣ 使用3.1 语法格式3.2 jcmd -l&#xff1a;列出正在运行的 Java 进程3.3 jcmd < pid> help&#xff1a;列出特定进程的诊断命令列表3.4 jcmd < pid> < command>&#xff1a;执行诊断命令 4️⃣ 应用场景…

【C++】开源:事件驱动网络库libevent配置使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍事件驱动库libevent配置使用。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xf…

Qt应用开发(基础篇)——时间类 QDateTime、QDate、QTime

一、前言 时间类QDateTime、QDate、QTime、QTimeZone保存了Qt的时间、日期、时区信息&#xff0c;常用的时间类部件都会用到这些数据结构&#xff0c;常用概念有年、月、日、时、分、秒、毫秒和时区&#xff0c;时间和时区就关系到时间戳和UTC的概念。 UTC时间&#xff0c;又称…

大模型使用——超算上部署LLAMA-2-70B-Chat

大模型使用——超算上部署LLAMA-2-70B-Chat 前言 1、本机为Inspiron 5005&#xff0c;为64位&#xff0c;所用操作系统为Windos 10。超算的操作系统为基于Centos的linux&#xff0c;GPU配置为A100&#xff0c;所使用开发环境为Anaconda。 2、本教程主要实现了在超算上部署LLAM…

零知识证明技术概述

简述 隐私泄露问题给企业带来了巨大的损失&#xff0c;本文简述零知识证明技术并且给出对应的应用示例&#xff1a; 什么是零知识证明&#xff1f; 零知识证明又被称为零知识协议&#xff0c;利用数学知识在双方不需要直接传递信息本身的前提下来验证信息的正确性。这个思想…

华为PMS API client token auth failed

对接华为pms时出现问题&#xff0c;提示华为PMS API client token auth failed 主要是权限的问题&#xff0c;创建项目的时候选择N/A

Windows11 家庭中文版关于本地组策略编辑器gpedit.msc找不到即打不开的解决办法(征诚小张售后实测有效)

Windows11 家庭中文版关于本地组策略编辑器gpedit.msc找不到即打不开的解决办法 根本原因&#xff1a;是因为Windows11家庭中文版的 版本系统没内置安装本地策略组编辑器 好了废话不多说 直接说解决办法 第一步 首先电脑上新建一个空文本文件 输入以下内容&#xff1a; echo o…

网络安全之原型链污染

目录&#xff1a; 目录&#xff1a; 一、概念 二、举例 三、 实操了解 总结 四、抛出原题&#xff0c;历年原题复现 第一题&#xff1a; 五、分析与原理 第二题&#xff1a; 八、分析与原理 九、具体操作&#xff0c;payload与结果 结果&#xff1a; 一、概念 Java…

Prometheus实现系统监控报警邮件

Prometheus实现系统监控报警邮件 简介 Prometheus将数据采集和报警分成了两个模块。报警规则配置在Prometheus Servers上&#xff0c; 然后发送报警信息到AlertManger&#xff0c;然后我们的AlertManager就来管理这些报警信息&#xff0c;聚合报警信息过后通过email、PagerDu…