vue.js - 如何将 Emit 与 v 模型一起使用?

标签 vue.js vuejs3 emit v-model

我在 Vue3 上,我试图从 child 那里获取一个值给 parent 。 所以我的代码是:

在 parent 身上:

<template>
  <input-form v-model="valueSuperficie" label="Surface en m²" />
</template>

<script>
  data() {
    return {
      valueSuperficie = null,
    }
  }
</script>

然后我尝试在 child 身上发射。

<template>
  <input 
    v-on:change="$emit('userEntry', $event.target.valueInput)"
    v-model="userEntry"
  />
</template>
    
<script>
  data() {
    return {
      userEntry: this.valueInput,
    };
  },
  emits: ["userEntry"],
    
</script>

我知道我的代码是错误的,我想要的是成功地存储 child 的值,即 userEntry 在 parent 的数据 valueSuperficie 中。 谢谢

最佳答案

在子组件中定义一个名为 modelValue 的 prop 并发出一个名为 update:modelValue 的事件:

<template>
   <input 
      v-on:input="$emit('update:modelValue', $event.target.value)"
      :value="modelValue"
/>
</template>

<script>
export default{
  props:{
     modelValue:String
    },
  emits: ["update:modelValue"],
}
</script>

关于vue.js - 如何将 Emit 与 v 模型一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70046955/

相关文章:

Vue.js 3's alternative of ` Vue.config.errorHandler`

javascript - 如何在运行时动态创建 C# 类(根据现有类)

javascript - 在 Vue.js 中插入响应式 iframe 的 javascript 代码

apache - XMLHttpRequest 被 axios.post 上的 CORS 策略阻止

typescript - Vue 3 如何传递一个可选的 bool Prop ?

vue.js - Ref 不适用于 Vue3 中的自定义组件

vue.js - $emit 回调完成后的 vue

map - 为什么发出(meta.id,NULL)

docker - 无法从主机连接到 dockerized Vue CLI 服务

typescript - 使用组合 API 和 typescript 打字系统对 vue 组件进行强打字