一场由Element-ui 数字输入框引发的惨案,我们应该怎么选择是否使用输入输入框?

devtools/2024/10/11 4:20:42/

# 本文灵感来源于工作实践

        上午我接到一个功能优化的需求,说是如果在单位为“亩”的情况下,要确保他的数量不能大于地块的数量并回显,虽然目前已经在新增时可以实现,但是在修改时就直接失效了。

        我当时第一时间就想到,何必写个方法来做校验呢,直接使用Element-ui的数字输入框就好了呀,莫非领导在考察我的功底,于是乎我着手了优化工作。

        首先我看到同事编写的经典输入框,如下:


<el-input v-model="form.number"

                  v-if="form.unit=='亩'"

                 :placeholder="`请输入数量,数量不能超过${面积}亩`"

                  style="width:100%;"

 />

<el-input v-model="formData.number" v-else placeholder="请输入数量" />

        于是忽我开启了我的改造之旅,改成了这样:

<el-input-number v-model="formData.number"

                   v-if="formData.unit=='亩'"

                   :placeholder="`请输入数量,数量不能超过${area}亩`"

                   :max="area"

                   :min="0"

                    style="width:100%;"

  />

                  <el-input v-model="formData.number" v-else placeholder="请输入数量" />

        然后根据上面的问题描述,我知道他们请求了接口,于是忽,我在用户点击编辑之后做了一个根据ID查询的操作,并且每次进来赋值给area(即最大面积),这样就不用在使用繁琐的方法了。

        于是我开始了着手测试,新增....没问题,那我试试修改呢,问题出现了。不论怎么样,我的面积字段他都是0,于是我开启了排除,我首先打印日志,打印了对象,和对象点属性,神奇的一幕出现了,如果查看打印的整个对象,那么他的number字段为0,然而如果打印他的对象点属性,则出现正确的数据。

        我于是看了看接口的请求返回参数,神奇的一幕出现了,他的number属性竟然也是0,这就很奇怪了,我百思不得其解,于是我看了看线上的地址,发现他的数据回显是好的,那么问题就出现在我这里了,于是我在恢复源代码的时候,看到了我用的数字输入框。

        忽然,我想到,有没有可能是:max=”area“ 和 :min =”0“ 在作怪,于是我把他们删除了,结果果然好了,我灵光乍现,忽然想到了,他的特性,如果超出最大值的时候会默认成为最大值,反之则是最小值,再看看他的默认定义是 const area = ref(0),好问题找到了,因为设置了最大值和最小值导致了我的数据错误。

        那如果最大值和最小值的不能设置的情况下,那我的数字输入框就没有了意义,原来前辈才是高人,我才是那只小卡拉米,我最后不得不使用前辈写的手动校验方法来判断是否超出最大值。

        所以以后,在遇到同样问题的情况下,可以想想当前的情况会不会因为输入框的某种特性而冲突,要仔细研究前辈为什么要这样做。


http://www.ppmy.cn/devtools/123978.html

相关文章

大数据新视界 --大数据大厂之 Druid 查询性能提升:加速大数据实时分析的深度探索

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

rabbitMq------连接管理模块

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言管理的字段连接内存管理对象 前言 我们的网络通信框架使用的muduo库&#xff0c;而在mudu库中是已经有了连接的概念&#xff0c;但是我们呢还有一个信道的概念…

LeetCode讲解篇之1043. 分隔数组以得到最大和

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 对于这题我们这么考虑&#xff0c;我们选择以数字的第i个元素做为分隔子数组的右边界&#xff0c;我们需要计算当前分隔子数组的长度为多少时能让数组[0, i]进行分隔数组的和最大 我们用数组f表示[0, i)区间内的…

ipguard与Ping32在各行业防数据泄漏方案大对比(企业必看)

随着信息技术的飞速发展和企业数字化转型的推进&#xff0c;数据安全已经成为企业面临的重大挑战之一。特别是敏感数据的保护问题&#xff0c;直接关系到企业的商业机密、客户隐私以及合规风险。因此&#xff0c;各行业对防数据泄漏&#xff08;DLP, Data Loss Prevention&…

AAA Mysql与redis的主从复制原理

一 &#xff1a;Mysql主从复制 重要的两个日志文件&#xff1a;bin log 和 relay log bin log&#xff1a;二进制日志&#xff08;binnary log&#xff09;以事件形式记录了对MySQL数据库执行更改的所有操作。 relay log&#xff1a;用来保存从节点I/O线程接受的bin log日志…

留学期间如何提高职业竞争力?

留学期间是提高职业竞争力的关键时期&#xff0c;以下是一些具体的建议&#xff0c;帮助留学生在留学期间增强自身的职业竞争力&#xff1a; 一、深化专业知识与技能 1. 专注于课程学习&#xff1a;努力学习专业课程&#xff0c;掌握扎实的专业知识&#xff0c;这是提高职业竞…

Hive优化操作(一)

Hive SQL 优化指南 在使用 Hive 进行数据分析时&#xff0c;提高查询性能至关重要。以下是一些具体的优化策略&#xff0c;帮助我们在工作中更有效地管理和查询数据。 一、 减少数据量进行优化 1. 分区表优化 分区是一种表的子集&#xff0c;用于按某一列&#xff08;如日期…

github/git密钥配置与使用

零、前言 因为要在ubuntu上做点东西&#xff0c;发现git clone 的时候必须输账户密码&#xff0c;后来发现密码是token&#xff0c;但是token一大串太烦了&#xff0c;忙了一天发现可以通过配置 公钥 来 替代 http 的 部署方式。 一、生成 ssh 密钥对 我们先测试下能不能 连接…