【发布时间】:2021-02-21 01:01:08
【问题描述】:
我刚刚发现在 Vue3 中,v-model 无法响应/响应子级 Component 工作。
此代码将更新username 数据
<template>
<div>
<input type="text" v-model="username" placeholder="Insert your username" />
<p>{{ username }}</p>
</div>
</template>
<script>
// Home.vue
export default {
name: 'Home',
data() {
return {
username: 'admin'
}
}
}
</script>
如果我在input 中输入内容,username 的数据也会发生变化。
但是,当我像这个例子一样使用Component 时:
<template>
<input type="text" :class="'input-text ' + additionalClass" :placeholder="placeholder" />
</template>
<script>
// InputText.vue
import { defineComponent } from "vue"
export default defineComponent({
name: 'InputText',
props: {
placeholder: {
type: String,
default: ''
},
additionalClass: {
type: String,
default: ''
}
}
})
</script>
然后我更新了我的代码以使用Component。
注意:Component 注册成功。
<template>
<div>
<input-text v-model="username" :placeholder="`Insert your username`" />
<p>{{ username }}</p>
</div>
</template>
<script>
// Home.vue
export default {
name: 'Home',
data() {
return {
username: 'admin'
}
}
}
</script>
当我输入内容时,username 数据没有更新,与之前的不同。
是否有任何解决方案或至少可以参考我想要实现的目标?
【问题讨论】:
标签: javascript vue.js vue-component vuejs3