vue3 emits: [‘update:modelValue‘]

在 Vue.js 中,emits 选项用于声明组件可以触发的事件。['update:modelValue'] 是 Vue 3 中用于自定义组件与 v-model 指令配合工作的特殊事件名。

当您使用 v-model 指令与自定义组件进行双向绑定时,Vue 内部实际上是在做以下操作:

  1. value 作为 prop 传递给组件。
  2. 监听组件触发的 update:modelValue 事件,并更新父组件的数据。

所以,当您在自定义组件中声明 emits: ['update:modelValue'],您实际上是在告诉 Vue:"这个组件可以触发一个事件来更新与 v-model 绑定的值"。

以下是一个简单的例子:

MyComponent组件

vue 复制代码
<template>
  <input :value="modelValue" @input="updateValue">
</template>

<script>
export default {
  props: {
    modelValue: {
      type: String,
      default: ''
    }
  },
  emits: ['update:modelValue'],
  methods: {
    updateValue(event) {
      this.$emit('update:modelValue', event.target.value);
    }
  }
}
</script>

在这个例子中,自定义组件接收一个名为 modelValue 的 prop,并在输入框的值发生变化时触发 update:modelValue 事件。这样,当您在父组件中使用 v-model 与此组件绑定时,父组件的数据将会随着输入框的值的变化而更新。

vue 复制代码
<MyComponent v-model="someData" />

这里的 someData 会随着 MyComponent 内部的输入框的值的变化而更新。

相关推荐
超人不会飛19 小时前
Vue markdown组件 | 流式 | 大模型应用
前端·javascript·github
小白640219 小时前
前端梳理体系从常问问题去完善-基础篇(html,css,js,ts)
前端·css·html
怪可爱的地球人19 小时前
vue3小白入门
前端
掘金安东尼19 小时前
bun install:安装过程的幕后揭秘
前端·github·bun
Dontla20 小时前
流行的前端架构与后端架构介绍(Architecture)
前端·架构
muchan9220 小时前
为什么“它”在业务逻辑上是最简单的?
前端·后端·面试
我是日安20 小时前
从零到一打造 Vue3 响应式系统 Day 6 - 响应式核心:链表实装应用
前端·vue.js
艾小码20 小时前
Vue模板进阶:这些隐藏技巧让你的开发效率翻倍!
前端·javascript·vue.js
浩浩kids20 小时前
Web-birthday
前端
艾小码20 小时前
还在手动加载全部组件?这招让Vue应用性能飙升200%!
前端·javascript·vue.js