背景:这两天准备优化表单代码,公司规定的是失焦校验。
问题描述:表单里有个input框,只能输入数字。使用Ant desgin的表单前缀加了一个“PT”,此时的PT是一个icon。并不是字符串。
传入数据库的时候,需要拼接字符串加上“PT”(这个是字符串)。
关闭模态窗口表单重新校验了,而且校验的是最新值,如“PT1234” 。项目统一失焦校验,导致了交互方面出问题,视图层会优先改变。
举例, “1234”,点击保存变成会拼接前缀变成“PT1234”并且传入数据库。这时候视图层也会变成“PT1234”.但是其实我们只需要显示“1234”。
结果:数据库传入的数据没问题,电脑够快也没问题。但是一但电脑慢一点,用户就会看见“PT1234”变成“PTPT1234”。
解决思路:既然重新触发校验,那么不如使用ES6的Proxy来直接限制校验。先试试,明天继续码笔记
看了别人的文章,里面写的是:
虽然Proxy具备一些很神奇的功能, 但在使用时仍然具有一些不得不小心应对的限制:
性能会受到显著的影响. 在注重性能的代码中应该避免对Proxy的使用
没有办法区分判断一个对象是一个Proxy的对象或者是target的对象
Proxy可能会导致代码在可读性上面出现问题