Skip to content

Commit 1a94b55

Browse files
authoredNov 5, 2024··
fix(InputMenu/SelectMenu): prevent unnecessary updates when modelValue is unchanged (#2507)

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed
 

‎src/runtime/components/forms/InputMenu.vue

+6-1
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@
9191
</template>
9292

9393
<script lang="ts">
94-
import { ref, computed, toRef, watch, defineComponent } from 'vue'
94+
import { ref, computed, toRef, watch, defineComponent, toRaw } from 'vue'
9595
import type { PropType } from 'vue'
9696
import {
9797
Combobox as HCombobox,
@@ -436,6 +436,11 @@ export default defineComponent({
436436
437437
function onUpdate(value: any) {
438438
query.value = ''
439+
440+
if (toRaw(props.modelValue) === toRaw(value)) {
441+
return
442+
}
443+
439444
emit('update:modelValue', value)
440445
emit('change', value)
441446

‎src/runtime/components/forms/SelectMenu.vue

+5-1
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@
123123
</template>
124124

125125
<script lang="ts">
126-
import { ref, computed, toRef, watch, defineComponent } from 'vue'
126+
import { ref, computed, toRef, watch, defineComponent, toRaw } from 'vue'
127127
import type { PropType } from 'vue'
128128
import {
129129
Combobox as HCombobox,
@@ -551,6 +551,10 @@ export default defineComponent({
551551
})
552552
553553
function onUpdate(value: any) {
554+
if (toRaw(props.modelValue) === value) {
555+
return
556+
}
557+
554558
emit('update:modelValue', value)
555559
emit('change', value)
556560
emitFormChange()

0 commit comments

Comments
 (0)
Please sign in to comment.