记录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 相关文章推荐
jquery.post用法之type设置问题
Feb 24 Javascript
JQuery中DOM事件冒泡实例分析
Jun 13 Javascript
JS实现部分HTML固定页面顶部随屏滚动效果
Dec 24 Javascript
基于javascript实现tab选项卡切换特效调试笔记
Mar 30 Javascript
jQuery.Callbacks()回调函数队列用法详解
Jun 14 Javascript
vue.js入门教程之计算属性
Sep 01 Javascript
js实现前端图片上传即时预览功能
Aug 02 Javascript
vue.js将时间戳转化为日期格式的实现代码
Jun 05 Javascript
vue-cli3环境变量与分环境打包的方法示例
Feb 18 Javascript
Node.js + express实现上传大文件的方法分析【图片、文本文件】
Mar 14 Javascript
小程序实现搜索框
Jun 19 Javascript
Vue 同步异步存值取值实现案例
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
PHP实现Socket服务器的代码
2008/04/03 PHP
PHP中extract()函数的妙用分析
2012/07/11 PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
2014/09/29 PHP
PHP实现的简单日历类
2014/11/29 PHP
PHP基于ip2long实现IP转换整形
2020/12/11 PHP
jquery 实现的全选和反选
2009/04/15 Javascript
IE与Firefox在JavaScript上的7个不同句法分享
2011/10/30 Javascript
jquery实现滑动图片自己测试的例子
2013/11/05 Javascript
多选列表框动态添加,移动,删除,全选等操作的简单实例
2014/01/13 Javascript
常用原生JS兼容性写法汇总
2016/04/27 Javascript
jQuery简单实现彩色云标签效果示例
2016/08/01 Javascript
javascript淘宝主图放大镜功能
2016/10/20 Javascript
教你一步步用jQyery实现轮播器
2016/12/18 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
Node连接mysql数据库方法介绍
2017/02/07 Javascript
Angular移动端页面input无法输入的解决方法
2017/11/14 Javascript
Vue常见面试题整理【值得收藏】
2018/09/20 Javascript
Vue3.0数据响应式原理详解
2019/10/09 Javascript
js实现数字从零慢慢增加到指定数字示例
2019/11/07 Javascript
vuex入门最详细整理
2020/03/04 Javascript
零基础写python爬虫之使用urllib2组件抓取网页内容
2014/11/04 Python
使用Python来编写HTTP服务器的超级指南
2016/02/18 Python
Python编程argparse入门浅析
2018/02/07 Python
python用post访问restful服务接口的方法
2018/12/07 Python
详解webapp页面滚动卡顿的解决办法
2018/12/26 HTML / CSS
canvas版人体时钟的实现示例
2021/01/29 HTML / CSS
泰国国际航空公司官网:Thai Airways International
2019/12/04 全球购物
机械工程系毕业生求职信
2013/09/27 职场文书
庆八一活动方案
2014/01/25 职场文书
爱国演讲稿500字
2014/05/04 职场文书
上课迟到检讨书300字
2014/10/15 职场文书
股权转让协议范本
2014/12/07 职场文书
给老婆道歉的话
2015/01/20 职场文书
初中班主任培训心得体会
2016/01/07 职场文书
Python 中数组和数字相乘时的注意事项说明
2021/05/10 Python
win10更新失败无限重启解决方法
2022/04/19 数码科技