在对组件进行在封装时我们会遇到一个 ue warn] Set operation on key "modelValue" failed: target is readonly. 的警告
我的组件内部是这样封装的
这里是Vue官网的V-model的原理
分析原因后发现是在v-model的基础上再次封装v-model时v-model的update事件事实上直接修改了props 但是props是只读的并且没有调用自己封装的emis updata 我的以下是我的解决方案
原理是使用computed进行绑定 将取值和赋值进行拆分 ,赋值时调用更新函数 。当然也可以将原有组件的v-model拆封为modelValue updeta:modelValue 在updeta:modelValue的事件函数中调用自己的emit进行在上层的更新。
------分隔符------
好的 我最后选择的是属性透传
利用属性透传直接传递v-model