vue设置mock

news/2024/7/9 23:48:27 标签: vue, mock

转载:Vue笔记——项目中设置mock数据

Vue笔记——项目中设置mock数据

我们在使用Vue写前端项目的时候,可能会需要后端传回来的数据来进行测试。但是有的时候我们没有后端的环境,不能获取到我们想要的数据。这个时候我们就需要在Vue项目中设置一些假数据,即mock数据。

配置完成之后,我们就可以像请求后台数据一样,通过一个特定的url来获取到我们需要的mock数据,比如:/api/goods/api/ratings 等。

今天就跟大家分享如何在自己的Vue项目中设置mock数据。需要注意的是,我现在使用的是Vue2.x版本,不过我想Vue3.x版本应该也是大同小异。

二、准备工作

首先我们应该在本地准备我们需要的mock数据,一般情况下是一些json数据,我们将这些json数据放在一个 data.json 文件中,然后将这个文件放在项目主目录下即可。如果你没有准备,可以直接点击 进行下载

除此之外我们就不需要额外准备其他的数据了,我们设置mock数据,主要是依靠webpack给我们自动安装的express组件,而且设置这些数据的时候,只需要在 build 文件夹下的 webpack.dev.conf.js 文件中。

三、具体配置

我们首先应该引入 express组件data.json 数据文件,具体代码如下:

const express = require('express')
const app = express()
const apiRoutes = express.Router()

let appDate = require(’…/data.json’)
let seller = appDate.seller
let goods = appDate.goods
let ratings = appDate.ratings

app.use(‘api’, apiRoutes)

完成上面的工作之后,我们找到 devServer 这个对象

给这个对象新增一个方法,具体的代码如下:

before(app) {
  app.get('/api/seller', (req, res) => {
    res.json({
      errno: 0,
      data: seller
    })
  }),
  app.get('/api/goods', (req, res) => {
    res.json({
      errno: 0,
      data: goods
    })
  }),
  app.get('/api/ratings', (req, res) => {
    res.json({
      errno: 0,
      data: ratings
    })
  })
}

这里对上面的代码做一些解释:我们新建了三条mock数据,分别通过 /api/seller/api/goods/api/ratings 来获取,返回的结果是包含errnodatajson对象,如果如果你还想让这些mock数据返回更多的东西,可以在errnodata之后添加新的属性。

例如你想通过 /api/seller 返回message:"这些是商家数据"这条信息,可以这样改写:

before(app) {
  app.get('/api/seller', (req, res) => {
    res.json({
      errno: 0,
      data: seller
      message: "这些是商家数据"
    })
  })

四、获取数据

如此一来,使用npm run dev来重启我们的Vue项目(注意这里一定要重新启动,修改这些配置不会触发热加载),然后通过我们配置的api来获取mock数据。

        </div>
					<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-a47e74522c.css" rel="stylesheet">
            </div>
								
				<script>
					(function(){
						function setArticleH(btnReadmore,posi){
							var winH = $(window).height();
							var articleBox = $("div.article_content");
							var artH = articleBox.height();
							if(artH > winH*posi){
								articleBox.css({
									'height':winH*posi+'px',
									'overflow':'hidden'
								})
								btnReadmore.click(function(){
									if(typeof window.localStorage === "object" && typeof window.csdn.anonymousUserLimit === "object"){
										if(!window.csdn.anonymousUserLimit.judgment()){
											window.csdn.anonymousUserLimit.Jumplogin();
											return false;
										}else if(!currentUserName){
											window.csdn.anonymousUserLimit.updata();
										}
									}
									
									articleBox.removeAttr("style");
									$(this).parent().remove();
								})
							}else{
								btnReadmore.parent().remove();
							}
						}
						var btnReadmore = $("#btn-readmore");
						if(btnReadmore.length>0){
							if(currentUserName){
								setArticleH(btnReadmore,3);
							}else{
								setArticleH(btnReadmore,1.2);
							}
						}
					})()
				</script>
				</article>

http://www.niftyadmin.cn/n/1834322.html

相关文章

拿到后台传递过来的富文本,样式设置不上

思路: 拿到dom,遍历加样式 template: <div v-html"info.pDescDetails" class"shoppingInfo"></div>mounted: let img document.querySelectorAll(".shoppingInfo img") console.log(img); for (let i 0; i < img.length; i)…

托管代码的进程注入CLR宿主

托管代码的进程注入&CLR宿主 在前面关于CLR寄宿的几篇博客&#xff08;CLR寄宿(上) MSCOREE.DLL&#xff0c;CLR寄宿(中) 托管exe文件的加载和执行&#xff0c;CLR寄宿(下) 托管宿主&#xff09;中&#xff0c;介绍了常用的宿主接口。宿主接口&#xff0c;允许我们使用非托…

vue添加公共filters + 时间格式化插件moment

src/filters/index.js // 引入时间格式化插件 import moment form momentconst vFilter {dateF(value) {return moment(value).format("YYYY-MM-DD HH:mm:ss")}export default vFilter;src/main.js import vfilters from ./filters //引入过滤器for (let key in v…

[vue]——登录页面交互

面板切换 登录页面板一般会选择多种登录方式&#xff0c;短信登录或者密码登录&#xff0c;这两种登录方式会通过点击来实现显隐。 在不使用框架的情况下&#xff0c;实现两哥面板相互显隐&#xff0c;就要用到样式中的display&#xff0c;在初始化的时候给短信登录添加一个计…

Client Hypervisor,看上去很美!

关注虚拟化平台的朋友&#xff0c;近年来一定看到很多关于Hypervisor的宣传介绍&#xff0c;大多数资料中介绍的Hypervisor都是指服务器虚拟化的hypervisor&#xff0c;如VMware ESXi,Microsoft Hyper-v等&#xff0c;看到身边有朋友偶尔提起Client Hypervisor&#xff0c;对于…

java_时间戳与Date_相互转化相关函数【转】

原文地址&#xff1a;http://blog.csdn.net/shinn613/article/details/6293956 一.日期转换为时间戳 public long getTimestamp() throws ParseException{Date date1 new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").parse("2009/12/11 00:00:00");Date dat…

检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败解决方案...

第一种方法测试过可用&#xff1a;地址&#xff1a;http://download.csdn.net/detail/itjjfamily/8853509下面是第二种&#xff1a;.NET导出Excel遇到的80070005错误的解决方法: 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败&#xff0c;原…

png图片 透明区域如何 让其不响应鼠标事件?

修改->分离&#xff08;ctrlB&#xff09;打散的还有透明区域,和位图的效果是一样的 你可以在cs5里把png图转成矢量图在做成movieclip做按钮 打散并没有转换成矢量图。 修改->位图->转换位图为矢量图 数值越小越好 选平滑 要么抠出来 要么单独做个按钮 也可以在cs工…