vue实践中的狗血事件之:mock数据引发的血坑
在项目实践中,遇到了这么一档子事
开发环境下,很快乐,什么事儿都没有,于是想打包一下测一下自动登录的效果
好家伙,一开始登录没有效,改来改去,最后连路由都切换不了,
明明开发环境下好好的,为毛打包后就不行了
折腾了半天,终于找到原因:ajax请求数据搞的鬼
情况如下:
开发环境下用express模拟出请求路由,登录数据和端口数据一起放在一个login.json文件中
{
"userinfo":{
"name" : "vbyzc1984",
"tel" : "13959795557",
"head" : "QQ20180813161622.jpg",
"addr" : "泉州市丰泽区外代大厦11楼1102",
"money":"9500",
"score":"7500",
"level":"2",
"exp":"1250",
"nextexp":"5000"
},
"goods" :[
{
"title":"梅菜扣肉饭",
"image":"food1.jpg",
"price":"13",
"label":{
"zp":true,
"new":true,
"la":false
}
}
]
}
将login.json require引入:var appData = require('./api/login.json')
用express注册出2个路由:
“api/login.json” : 设置返回数据为 appData.userinfo
“api/goods.json” : 设置返回数据为 appData.goods
请求很正常,正常登录
api/login.json是静态模拟,所以打包后,直接把整个目录复制过去测试效果,
由于开发环境下是虚拟路由直接返回整个login.json对象中的某个对象,
所以代码中用response.data.data,得到的是包括userinfo,和goods2个子对象的一个完整对象,直接放到vuex状态中的登录对象,肯定不能用
所以最后解决方法是,把login.json改为db.json,用于放所有模拟数据
再分别新建独立的对应数据文件:比如login.json,只放这些东西:
{
"data":{
"name" : "vbyzc1984",
"tel" : "13959795557",
"head" : "QQ20180813161622.jpg",
"addr" : "泉州市丰泽区外代大厦11楼1102",
"money":"9500",
"score":"7500",
"level":"2",
"exp":"1250",
"nextexp":"5000"
}
}
此外还有一奇葩事件导致相关的代码出现错误警告
开发环境中,从localStorage获取没有设置的值,得到的是 null
而生产环境中,得到的是 'undefined' ,注意,是字符串,不知为何?
暂时只能多加个判断来解决 :
vue实践中的狗血事件之:mock数据引发的血坑的更多相关文章
- vue-cli3.x中使用axios发送请求,配合webpack中的devServer编写本地mock数据接口(get/post/put/delete)
vue-cli3.x中使用axios发送请求,配合webpack中的devServer编写本地mock数据接口(get/post/put/delete) 手把手式笔记 Axios配置 安装 axios ...
- Vue开发中的中央事件总线
在Vue开发中会遇到大量的组件之间共享数据的情形,针对不同的情形,Vue有相对应的解决方案.比如,父组件向子组件传值可以使用props,复杂项目中不同模块之间传值可以使用Vuex.但是,对于一些简单的 ...
- onscroll事件没有响应的原因以及vue.js中添加onscroll事件监听的方法
1 onscroll事件失效 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
- vue项目中使用mockjs模拟接口返回数据
Mock.js 是一个模拟数据生成器,利用它,可以拦截ajax请求,直接模拟返回数据,这样前后端只要约定好数据格式,前端就不需要依赖后端的接口,可以直接使用模拟的数据了. 网上介绍mock的教程也较多 ...
- vue项目中使用mockjs+axios模拟后台数据返回
自己写练手项目的时候常常会遇到一个问题,没有后台接口,获取数据总是很麻烦,于是在网上找了下,发现一个挺好用的模拟后台接口数据的工具:mockjs.现在把自己在项目中使用的方法贴出来 先看下项目的目 ...
- vue组件中—bus总线事件回调函数多次执行的问题
在利用vue组件进行事件监听时发现,如果对N个vue组件实例的bus总线绑定同一事件的回调函数,触发任意组件的对应事件,回调函数至少会被执行N次,这是为什么呢? 为此,调研了普通对象的事件绑定和触发实 ...
- vue.js 中如何解除绑定事件
我们项目中有一个点赞需求,只允许点击一次赞,再次点击则取消赞, 为了防止用户多次连续点击,在点赞后需要解绑事件,成功调取API后,才可再次点击取消赞. 目前用的方法是加入一个flag控制点击事件可否点 ...
- clipboard 在 vue 项目中,on 事件监听回调多次执行
clipboard 定义一个全局变量 import ClipboardJS from "clipboard"; if(clipboard){ clipboard.destroy() ...
- VUE 实现监听滚动事件,实现数据懒加载
methods: { // 获取滚动条当前的位置 getScrollTop() { let scrollTop = 0 if (document.documentElement && ...
随机推荐
- SCRUM 12.14
由于最近的课业较多,大家平时有些力不从心,对于工作完成得有限. 最近课业压力小了一些,我们决定从今天起,投入精力. 以下为我们的任务分配情况: 人员 任务 高雅智 清除缓存 彭林江 统计活跃用户数量 ...
- 【Alpha】第五次Scrum meeting
今日重大事件一览: 姓名 今日完成任务 所耗时间 刘乾 今日没有完成那个Issue..TuT第一次这么努力工作的我没有完成任务...真的是任务太坑啦. 任务完成了 60% Issue链接:https: ...
- Git(2.14.1版本)学习及使用(一)
OuZeBo原创作品.转载请注明出处 http://www.cnblogs.com/OuZeBo/p/7477465.html 1.下载git:https://git-scm.com/ 2.安装(本人 ...
- Git 笔记——如何处理分支合并冲突
1.前言 学习使用 Git 也有一段时间,但一直都是把 Git 当作一个代码仓库,使用的命令无非就是 clone, add, commit ,往往课程作业也没有过多人合作开发,没有体验过 Git 的分 ...
- Android 7.0+相机、相册、裁剪适配问题
Android 7.0+相机.相册.裁剪适配问题 在manifest中: <provider android:name="android.support.v4.content.File ...
- SQLSERVER 设置自动备份数据库
1. SQLSERVER 简单的设置 计划任务 进行 备份数据库的操作. 首先需要打开 一些设置 执行 命令如下: sp_configure ; GO RECONFIGURE; GO sp_confi ...
- [转帖]Prometheus+Grafana监控Kubernetes
原博客的位置: https://blog.csdn.net/shenhonglei1234/article/details/80503353 感谢原作者 这里记录一下自己试验过程中遇到的问题: . 自 ...
- Java对中文进行排序
对中文进行排序,同样是得定义一个Comparator,下面上代码: import java.text.Collator; import java.util.ArrayList; import java ...
- BZOJ5462 APIO2018新家(线段树+堆)
一个显然的做法是二分答案后转化为查询区间颜色数,可持久化线段树记录每个位置上一个同色位置,离线后set+树状数组套线段树维护.这样是三个log的. 注意到我们要知道的其实只是是否所有颜色都在该区间出现 ...
- #35 string(缩点+动态规划)
容易发现有了交换相邻字符的操作后,只要字符串所含有的字符种类和数量相同其就是等价的.这样的状态只有n^3级别,将其抽象成点子串变换抽象成边后就是求最长路径了,缩点dp解决. 码量巨大,不是很明白要怎样 ...