记录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经典效果集锦
Jul 06 Javascript
基于jQuery的history历史记录插件
Dec 11 Javascript
JS动态获取当前时间,并写到特定的区域
May 03 Javascript
JQuery each()嵌套使用小结
Apr 18 Javascript
Websocket协议详解及简单实例代码
Dec 12 Javascript
Angular中ng-repeat与ul li的多层嵌套重复问题
Jul 24 Javascript
vue-lazyload图片延迟加载插件的实例讲解
Feb 09 Javascript
JS/jQuery实现获取时间的方法及常用类完整示例
Mar 07 jQuery
Node如何后台数据库使用增删改查功能
Nov 21 Javascript
在Webpack中用url-loader处理图片和字体的问题
Apr 28 Javascript
Vue单文件组件开发实现过程详解
Jul 30 Javascript
解决vue-router路由拦截造成死循环问题
Aug 05 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
WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置
2008/03/28 PHP
php查看session内容的函数
2008/08/27 PHP
淘宝ip地址查询类分享(利用淘宝ip库)
2014/01/07 PHP
php和jquery实现地图区域数据统计展示数据示例
2014/02/12 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
2016/07/08 PHP
Yii2下session跨域名共存的解决方案
2017/02/04 PHP
PHP自定义错误处理的方法分析
2018/12/19 PHP
javascript 获取图片颜色
2009/04/05 Javascript
node.js中的fs.ftruncate方法使用说明
2014/12/15 Javascript
JavaScript中的值类型转换介绍
2014/12/31 Javascript
js实现选中复选框文字变色的方法
2015/08/14 Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
2020/11/18 Javascript
JS实现的N多简单无缝滚动代码(包含图文效果)
2015/11/06 Javascript
自己封装的一个原生JS拖动方法(推荐)
2016/11/22 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
2017/03/28 Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
2017/04/20 Javascript
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
2017/08/17 Javascript
微信小程序位置授权处理方法
2019/06/13 Javascript
angular6开发steps步骤条组件
2019/07/04 Javascript
vue使用prop可以渲染但是打印台报错的解决方式
2019/11/13 Javascript
vue3使用vue-count-to组件的实现
2020/12/25 Vue.js
[50:58]2018DOTA2亚洲邀请赛3月29日 小组赛A组OpTic VS Newbee
2018/03/30 DOTA
python中的函数用法入门教程
2014/09/02 Python
Python进行数据科学工作的简单入门教程
2015/04/01 Python
apache部署python程序出现503错误的解决方法
2017/07/24 Python
python基于twisted框架编写简单聊天室
2018/01/02 Python
Python实现的txt文件去重功能示例
2018/07/07 Python
15行Python代码实现网易云热门歌单实例教程
2019/03/10 Python
Python 进程之间共享数据(全局变量)的方法
2019/07/16 Python
python利用dlib获取人脸的68个landmark
2019/11/27 Python
python实现ssh及sftp功能(实例代码)
2020/03/16 Python
Crabtree & Evelyn英国官网:瑰珀翠护手霜、香水、沐浴和身体护理
2018/04/26 全球购物
Traffic People官网:女式花裙、上衣和连身裤
2020/10/12 全球购物
控制工程专业个人求职信
2013/09/25 职场文书
法学专业个人求职信
2013/09/26 职场文书
三年级作文之小小梦想
2019/12/06 职场文书