官方的回复就是属性改变会整体元素render,并不是setAttribute看来只能自己规避,感谢各位的回答,给+1官方回复大概猜到了,是不是属性的变化引起了render,vue内部render的逻辑会重新读取props上的value进行重新渲染,所以就出现了下面的情况.请看过的vue源码的大神给与回复确认,3q.演示请问这是不是vue的bug?浏览器:mac谷歌68vue:2.5.16&&2.5.17复现1复现2代码:newVue({el:"#app",data:{text:'vue',hasWarning:false},methods:{keydown(){if(1==1){this.hasWarning=true;}this.hasWarning=false;}}})
2 回答
森林海
TA贡献2011条经验 获得超2个赞
把:value="text"改为v-model="text"我觉得你用:value只是把text变量的初始值赋值给了input,但是input的值的改变并不会改变text变量,所以值一直没有改变。要想两者统一还是得用v-model进行双向绑定如果不用双向绑定就需要每次手动在keydown方法里修改this.text,会较麻烦。
添加回答
举报
0/150
提交
取消
