为了账号安全,请及时绑定邮箱和手机立即绑定

在线等,挺急的!表单改变,计算属性在与之前计算值相等时,表单没有发生改变?

在线等,挺急的!表单改变,计算属性在与之前计算值相等时,表单没有发生改变?

ABOUTYOU 2019-09-13 10:58:53
表单中奇数次按下字母,总会多一个字符串text:{{text}}myInt:{{myInt}}请在下表单中继续输入字符串测试exportdefault{name:'test',data(){return{text:123456,}},computed:{myInt:{cache:false,get:function(){returnthis.text;},set:function(value){this.text=value.toString().replace(/[^\d]/g,'');console.log(value)}}}}
查看完整描述

2 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

原因是数据发生改变视图才会重新渲染当你输入值value值发生变化然后被你替换还是原来是值也就是说myInt拿到的值没有发生变化所以视图没有重新渲染文本框值也就不会变化
computed这边用也是不合适如果你想input输入受控可以使用input||change事件
                            
查看完整回答
反对 回复 2019-09-13
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

cache已经从vue2.0中移除
计算属性是依赖data中的属性进行监听的,也就是说,你这里用到的v-modal是基于text进行驱动的
当UI的值(也就是这里的input)发生变化的时候,实际的流程是下面这样(1)用户输入-->(2)inputdom的值发生修改-->(3)触发事件监听-->(4)computed中的set执行-->(5)vue对比缓存
-->(61)如果发生变化触发get,更新dom
-->(62)如果没有发生变化,不触发get,dom不变
                            
查看完整回答
反对 回复 2019-09-13
  • 2 回答
  • 0 关注
  • 309 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信