【发布时间】:2021-10-04 11:47:54
【问题描述】:
假设我创建了一个自定义组件Comp.vue,它基本上是一个带有model-value 属性和@update="$emit('update:modelValue', $event.target.value) 的包装输入元素。
它可能看起来像这样:
<template>
<div>
<label :for="name" class="block relative">
<div>
{{ label }}
</div>
<input
:name="name"
:type="type"
:value="modelValue"
@input="$emit('update:modelValue', $event.target.value)"
/>
</label>
</div>
</template>
<script>
export default {
props: {
label: {
required: true,
type: String,
},
modelValue: {
required: false,
default: "",
type: [String, Number],
},
type: {
default: "text",
type: String,
},
name: {
required: false,
type: String,
default: "",
},
},
emits: ["update:modelValue"],
};
</script>
现在我已经在 App.vue 中导入了该组件。
为什么会这样:
<Comp @change="doSth1()" />
<Comp @input="doSth2()" />
我的自定义 Comp.vue 从不发出任何这些事件。
我创建了一个自定义 Playground 来记录这些事件: Playground Link
【问题讨论】:
标签: javascript vue.js vuejs3