神奇的<component>
来源:10-3 修改文章编码 第二部分 - 改进 ValidateInput 组件
慕莱坞0998854
2021-05-15
老师你好,之前的validate-input组件,由于input和textarea的逻辑都是一样的,所以我使用了来代替,代码如下
在本节的代码改造里面就出了奇怪的问题,老师把@input=updateValue和:value="inputRef.val"统一删除并改为了v-model的形式,这样反而没法拿到值了,如下
如果我改回来的话,又没有问题了,真的很奇怪,请问老师知道这是为什么吗
写回答
2回答
-
张轩
2021-05-18
同学你好 使用你的源代码尝试了一下 你这里使用了动态组件,根据两个条件
1,tag 是否是一个自定义组件
2,假如不是,它是否是一个 input,textarea,select 等其他表单元素。
vue3 compiler 会生成不同的 v-model 实现的。
而你这里使用了 动态组件,也就是说这里的 v-model 实现会被判定为自定义组件的实现,而不是表单元素的实现,就会造成问题。
参考:https://github.com/vuejs/vue/issues/4763
这里两种解决方法:第一,不使用 v-model
第二,不使用 component :is
00 -
张轩
2021-05-16
同学你好 请问源代码(git)是否能提供给我 我在本地调试一下你的代码试试看 谢谢
012021-05-16
相似问题