记录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 相关文章推荐
JS的反射问题
Apr 07 Javascript
情人节专属 纯js脚本1k大小的3D玫瑰效果
Feb 11 Javascript
jQuery实现带渐显效果的人物多级关系图代码
Oct 16 Javascript
jQuery获取父元素及父节点的方法小结
Apr 14 Javascript
JS中用try catch对代码运行的性能影响分析
Dec 26 Javascript
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
May 26 jQuery
vue-router中的hash和history两种模式的区别
Jul 17 Javascript
iView框架问题整理小结
Oct 16 Javascript
vue-week-picker实现支持按周切换的日历
Jun 26 Javascript
微信小程序 轮播图实现原理及优化详解
Sep 29 Javascript
selenium+java中用js来完成日期的修改
Oct 31 Javascript
js 动态校验开始结束时间的实现代码
May 25 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 mssql 时间格式问题
2009/01/13 PHP
用php获取本周,上周,本月,上月,本季度日期的代码
2009/08/05 PHP
PHP+jQuery翻板抽奖功能实现
2015/10/19 PHP
php根据日期或时间戳获取星座信息和生肖等信息
2015/10/20 PHP
PHP实现SMTP邮件的发送实例
2018/09/27 PHP
浅谈laravel-admin的sortable和orderby使用问题
2019/10/03 PHP
javascript 数组的方法集合
2008/06/05 Javascript
JavaScript 学习笔记(六)
2009/12/31 Javascript
javascript学习笔记(五)正则表达式
2011/04/08 Javascript
使用js判断数组中是否包含某一元素(类似于php中的in_array())
2013/12/12 Javascript
jQuery插件制作之全局函数用法实例
2015/06/01 Javascript
JavaScript运动减速效果实例分析
2015/08/04 Javascript
Node.js开启Https的实践详解
2016/10/25 Javascript
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
2016/12/15 Javascript
AngularJS的脏检查深入分析
2017/04/22 Javascript
小程序tab页无法传递参数的方法
2018/08/03 Javascript
vue中当图片地址无效的时候,显示默认图片的方法
2018/09/18 Javascript
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
浅谈vue-props的default写不写有什么区别
2020/08/09 Javascript
Vue实现购物车基本功能
2020/11/08 Javascript
[01:10:49]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
django 消息框架 message使用详解
2019/07/22 Python
简单了解如何封装自己的Python包
2020/07/08 Python
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
2020/09/09 Python
Python+unittest+requests 接口自动化测试框架搭建教程
2020/10/09 Python
Lombok插件安装(IDEA)及配置jar包使用详解
2020/11/04 Python
html5 Canvas画图教程(11)—使用lineTo/arc/bezierCurveTo画椭圆形
2013/01/09 HTML / CSS
美国销售第一的智能手机和平板电脑保护壳:OtterBox
2017/12/21 全球购物
执行力心得体会
2013/12/31 职场文书
小学生班会演讲稿
2014/01/09 职场文书
公司的门卫岗位职责
2014/09/09 职场文书
学术会议通知
2015/04/15 职场文书
歌剧魅影观后感
2015/06/05 职场文书
婚宴来宾致辞
2015/07/28 职场文书
解决vue $http的get和post请求跨域问题
2021/06/07 Vue.js
Arthas排查Kubernetes中应用频繁挂掉重启异常
2022/02/28 MySQL