记录vue项目中遇到的一点小问题


Posted in Javascript onMay 14, 2019

1、鼠标悬浮显示不同的背景图片,代码如下:

记录vue项目中遇到的一点小问题

效果如图,页面初始效果:

记录vue项目中遇到的一点小问题

鼠标悬浮后效果:

记录vue项目中遇到的一点小问题

2、for 循环发送axios遇到的问题 问题背景:

在声动语商项目中,需求更改后,出现一个:教师发布课程的时候要求一个课程同时发送给多个班级。

现在的接口:每次只能发送一个班级的id,也就是:classesId字段只能传一个班级的id,因此为了满足这个新需求就想着:将select修改为多选,使用for循环循环用户选中的班级数组,使用axios发送创建课程请求。更改后的界面如下图所示:

记录vue项目中遇到的一点小问题

问题复现:

思路:使用for循环,发送axios,发现请求发送的data中classesId总是最后一个,立马想到了闭包,以为是闭包问题,于是使用

记录vue项目中遇到的一点小问题

这种方法想着解决下闭包,重新发送axios请求发现classesId数据还是不对。然后自我怀疑,以为自己写的闭包是不是有啥问题....

于是使用了第三方lodash的forEach方法一下,将axios请求写到了foreach里面,重新运行还是发现不对。。。。

以为this指向有问题,有将this重新赋值,结果:还是一样。。。。。。。

于是又调整了一下代码:将axios请求重新封装出去,重新在for循环里面调用,结果:还是不对

打断点发现for循环出来的classesId数据是对的,但是加上axios请求,每次请求发送的classesId还只是最后一个的

又想着是不是axios的异步请求影响的,于是将axios改为了同步请求,结果:还是一样,这个时候,整个人就有点不好了。。。。

记录vue项目中遇到的一点小问题

记录vue项目中遇到的一点小问题

眼看着快要下班了,而这个问题已经看了一下午还没有解决,就很着急啊啊啊啊

努力回想自己曾经这样请求过啊,当时并没有发生任何不对。于是想着将请求的数据简化一下,就将发送的data数据简化到了只有classesId,想着只有一个数据了,就没有再定义任何的变量,直接将数据写到了axios请求内部。运行发现:classesId竟然是对的。。。。于是立马将其他数据都写到了axios请求内容,发现结果对了,天啊,终于看到了希望。。。。

记录vue项目中遇到的一点小问题

记录vue项目中遇到的一点小问题

记录vue项目中遇到的一点小问题

问题原因:

将这两种数据的定义及发送方式对比,分析问题可能是因为 js赋值的深拷贝和浅拷贝造成的。。。

其他

解决过程中还试了watch监听for循环classesId的变化,发现也只能监听获取到最后一个classesId.,并不能解决这个问题

Javascript 相关文章推荐
用javascript做拖动布局的思路
May 31 Javascript
ajax上传时参数提交不更新等相关问题
Dec 11 Javascript
jquery实现点击变换导航样式的方法
Aug 31 Javascript
JQuery解析XML数据的几个简单实例
May 18 Javascript
jQuery Select下拉框操作小结(推荐)
Jul 22 Javascript
Vuejs第七篇之Vuejs过渡动画案例全面解析
Sep 05 Javascript
JS弹出窗口的运用与技巧大全
Nov 01 Javascript
jQuery实现form表单序列化转换为json对象功能示例
May 23 jQuery
JS使用Dijkstra算法求解最短路径
Jan 17 Javascript
JS学习笔记之贪吃蛇小游戏demo实例详解
May 29 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
Nov 09 Javascript
如何在Node和浏览器控制台中打印彩色文字
Jan 09 Javascript
javascript中如何判断类型汇总
May 14 #Javascript
详解如何探测小程序返回到webview页面
May 14 #Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
May 14 #jQuery
javascript实现遮罩层动态效果实例
May 14 #Javascript
JQuery animate动画应用示例
May 14 #jQuery
微信小程序的线程架构【推荐】
May 14 #Javascript
jquery实现选项卡切换代码实例
May 14 #jQuery
You might like
php代码把全角数字转为半角数字
2007/12/10 PHP
PHP编实现程动态图像的创建代码
2008/09/28 PHP
php中mysql模块部分功能的简单封装
2011/09/30 PHP
利用php+mcDropdown实现文件路径可在下拉框选择
2013/08/07 PHP
在html文件中也可以执行php语句的方法
2015/04/09 PHP
php实现给二维数组中所有一维数组添加值的方法
2017/02/04 PHP
php的单例模式及应用场景详解
2021/02/27 PHP
客户端脚本中常常出现的一些问题和调试技巧
2007/01/09 Javascript
javascript动画效果类封装代码
2007/08/28 Javascript
百度Popup.js弹出框进化版 拖拽小框架发布 兼容IE6/7/8,Firefox,Chrome
2010/04/13 Javascript
JavaScript与Image加载事件(onload)、加载状态(complete)
2011/02/14 Javascript
使用javascript:将其它类型值转换成布尔类型值的解决方法详解
2013/05/07 Javascript
Javascript表格翻页效果实现思路及代码
2013/08/23 Javascript
js实现div弹出层的方法
2014/11/20 Javascript
Nodejs中的this详解
2016/03/26 NodeJs
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
2017/06/23 Javascript
Node.js中DNS模块学习总结
2018/02/28 Javascript
layui 优化button按钮和弹出框的方法
2018/08/15 Javascript
深入了解JavaScript 的 WebAssembly
2019/06/15 Javascript
微信小程序图片自适应实现解析
2020/01/21 Javascript
ES11新增的这9个新特性,你都掌握了吗
2020/10/15 Javascript
python发送邮件的实例代码(支持html、图片、附件)
2013/03/04 Python
python批量下载图片的三种方法
2013/04/22 Python
Python时区设置方法与pytz查询时区教程
2013/11/27 Python
python 解决Fatal error in launcher:错误问题
2020/05/21 Python
python批量合成bilibili的m4s缓存文件为MP4格式 ver2.5
2020/12/01 Python
周年庆典邀请函范文
2014/01/23 职场文书
便利店投资创业计划书
2014/02/08 职场文书
运动会演讲稿300字
2014/08/25 职场文书
放飞理想演讲稿
2014/09/09 职场文书
见习报告的格式
2014/11/04 职场文书
2014年秘书工作总结
2014/11/25 职场文书
见习期个人总结
2015/03/05 职场文书
2015年敬老院工作总结
2015/05/18 职场文书
Javascript 解构赋值详情
2021/11/17 Javascript
Linux安装Docker详细教程
2022/07/07 Servers