Closed sijunmanyue closed 1 week ago
最新版本,在created生命周期中做了value和modelValue的兼容:
created() { // 对话框遮罩不可点击 this.popup.disableMask() // this.popup.closeMask() if (this.mode === 'input') { this.dialogType = 'info' this.val = this.value; // #ifdef VUE3 this.val = this.modelValue; // #endif } else { this.dialogType = this.type } }
但是watch中只有对value属性的监听器,因此在vue3的版本中,由于缺少modelValue监听器,使用v-model可能导致双向绑定失效。 修复vue2和Vue3设置对应的监听器:
// #ifdef VUE2 value(val) { this.setVal(val) }, // #endif // #ifdef VUE3 modelValue(val) { this.setVal(val) } /** * 设置val的值 */ setVal(val) { if (this.maxlength != -1 && this.mode === 'input') { this.val = val.slice(0, this.maxlength); } else { this.val = val } }
你好,经过测试之前的写法是生效的
最新版本,在created生命周期中做了value和modelValue的兼容:
但是watch中只有对value属性的监听器,因此在vue3的版本中,由于缺少modelValue监听器,使用v-model可能导致双向绑定失效。 修复vue2和Vue3设置对应的监听器: