关于eslint误报Unexpected side effect in “” computed property的问题

先说结论,我没有在computed中修改任何页面变量,这属于eslint监测机制的误判报错。

好的现在进入正文。

起因:

我在eslint中设置了no-side-effects-in-computed-properties,
这个属性会检测开发人员是否在computed中改变了页面变量的值,
因为这种做法并不推荐所以会报错,
若有此需要,建议在watch中执行。

问题表现:


其中tool是一个挂载在VUE原型链上的工具对象

其本身包含的是一些通用方法,spliceString就是其中之一,源码如下

可以看到我并没有在computed中修改页面变量的值,那么为什么Eslint还会给我报错呢。
所以我去翻看了Eslint的源码。

寻找问题的根源

在Eslint包内的no-side-effects-in-computed-properties.js文件中,我找到了这么一段

可以看到当findMutating方法返回值满足条件是,Eslint就会向我们报刚刚看到的错,所以我又去寻找这个findMutating方法。
终于找到了万恶之源:

很明显,按照这个方法的逻辑,我们的这段代码最终会走到调用表达式的判断中,也就是上图红框中的代码段。

真相大白

Eslint会对所谓的callName做判断,如果name中包含push|pop|shift|unshift|reverse|splice|sort|copyWithin|fill这些字符串,则会返回并报错。
因为这些数组或者字符串的方法会改变变量的值,这是在规则中不允许的。
再返回去看我们的callName

包含了splice字符串,所以Eslint才会给我们报错。

解决

解决方法目前有几种,
1.对改行禁用Eslint校验,// eslint-disable-line

2.换一个方法名,不要包含push|pop|shift|unshift|reverse|splice|sort|copyWithin|fill这些字眼。

3.自行修改Eslint的源码中的校验规则(不推荐)
4.不要将tool整个挂载到vue原型链上,而是需要的时候再引入。

关于eslint误报Unexpected side effect in “getCheckedData“ computed property的问题相关推荐

  1. 简单分析MySQL 一则慢日志监控误报问题

    这篇文章主要介绍了MySQL 一则慢日志监控误报的问题分析与解决,帮助大家更好的理解和使用MySQL,感兴趣的朋友可以了解下 之前因为各种原因,有些报警没有引起重视,最近放假马上排除了一些潜在的人为原 ...

  2. win10系统的qq无网络连接网络连接到服务器,Win10系统下误报无法连接internet该怎么办?新手速看...

    在日常的工作以及学习当中,电脑已经成为我们身边最亲密的好帮手了,它不但可以帮助我们解决日常的诸多事物,而且还能够让我们足不出户就知晓天下事.当然了,那是必须在电脑连接了internet的前提下.而在电 ...

  3. 一次误报引发的DNS检测方案的思考:DNS隧道检测平民解决方案

    摘自:http://www.freebuf.com/articles/network/149328.html 通过以上分析得出监控需要关注的几个要素:长域名.频率.txt类型.终端是否对解析ip发起访 ...

  4. python里混淆矩阵 左下角为漏报,右上角为误报

    1为黑样本,0为白样本: Counter({1: 105, 0: 95}) check counter! confusion_matrix: [[83 12(预测值为1,实际为0,误报)]  [15( ...

  5. 关于Android SDK工具Lint的误报分析

    在项目基本做完后,我们通常会用Android SDK自带的工具Lint来检查一下项目中的一些潜在的问题(右键工程-->Android Tools-->Run Lint:Check for ...

  6. vscode 导入文件_VScode中误报Unableto import'xxx'pylint(import-error)解决方案

    VScode中误报Unable to import 'xxx' pylint(import-error)的解决方案 在vscode中进行同级目录调用模块时(在test_case/veryInfoUpl ...

  7. // D:\SaveLog\_SaveLog.dpr立即备份晓亮的电脑操作记录热键(快捷键) F11由于原来的 AutoIt 杀毒软件总是误报没办法只好麻烦一点用 Delphi XE4 做了...

    // D:\SaveLog\_SaveLog.dpr立即备份晓亮的电脑操作记录 热键(快捷键) F11由于原来的 AutoIt 杀毒软件总是误报没办法只好麻烦一点用 Delphi 各种版本 做了 (我 ...

  8. 动态污点分析——隐式流造成的漏报和误报

    污点分析面临 2 个问题:污染过度(overtainting)和污染缺失(undertainting). 其中,污染过度是将一个与污点输入无依赖关系的数据变量标记为污点属性,即产生误报. 而污染缺失则 ...

  9. linux主机重启之后,报UNEXPECTED INCOMSISTEMCY:RUN fsck MANUALLY.

    linux主机重启之后,报UNEXPECTED INCOMSISTEMCY:RUN fsck MANUALLY. 提示 give root password for maintenance (or t ...

最新文章

  1. 编程软件python怎样开始学-编程零基础应当如何开始学习 Python?
  2. 常考数据结构与算法:单调栈结构
  3. 「SDOI2016」储能表(数位dp)
  4. 12c创建为容器数据库_oracle 12c创建可插拔数据库(PDB)与用户详解
  5. java调用构造函数中某一个值_Java如何在枚举的构造函数中调用另一个枚举值
  6. 2018年软工第一次作业
  7. 利用jQuery如何获取当前被点击的按钮
  8. python web自动化代码_Python + selenium 自动化框架介绍+全代码附上
  9. 【TeachNLP】文本数据处理-词表获取
  10. mdf文件和ldf文件是什么?
  11. 瀚高数据库和mysql区别,瀚高数据库----select用法
  12. 手机上日程应该怎么设置提醒
  13. 调整HTML5画布中图像的大小
  14. java获得指定时间的前几天或后几天是哪一天
  15. 坚果nuts 加速 官网_#我的坚果R2# 开箱照大赛,现已正式开启
  16. vue二级路由不显示页面bug
  17. 在 Linux 终端中自定义 Bash 配色和提示内容
  18. 如何将lvm卷移动到另一台服务器中
  19. 【DL】第11 章:文本深度学习
  20. 歌德巴赫猜想。任何一个偶数都可以分解为两个素数之和。(其实这是个C二级考试的模拟试题)...

热门文章

  1. 【赶紧收藏】福利:Python全国计算机二级等级考试题库免费送!!!!
  2. jQuery实现消息列表循环垂直向上滚动
  3. 迷你播放器--第一阶段(2)--退出时自动最小化(不是关闭),增加当前播放曲目的跑马灯效果
  4. 每日一滴(实践)——NLP之处理停用词
  5. yolov3与yolov4效果对比_知识精讲 | Yolov3和Yolov4核心内容、代码梳理_创事记(5)
  6. 阿里云Redis开发遇到的问题总结
  7. mongodb的安装与配置
  8. 双摄像头测距的OpenCV实现
  9. 单片机胡汉才第四版答案_单片机课后习题答案__胡汉才编
  10. Arduino--YF-S201水流量检测传感器