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 内部的输入框的值的变化而更新。

相关推荐
学嵌入式的小杨同学2 小时前
从零打造 Linux 终端 MP3 播放器!用 C 语言实现音乐自由
linux·c语言·开发语言·前端·vscode·ci/cd·vim
weixin_425543733 小时前
TRAE CN3.3.25 构建的Electron简易DEMO应用
前端·typescript·electron·vite·nestjs
Mr Xu_4 小时前
【Vue3 + ECharts 实战】正确使用 showLoading、resize 与 dispose 避免内存泄漏
前端·信息可视化·vue·echarts
0思必得04 小时前
[Web自动化] Selenium设置相关执行文件路径
前端·爬虫·python·selenium·自动化
雯0609~4 小时前
hiprint:实现项目部署与打印1-官网提供普通html版本
前端·html
yuezhilangniao4 小时前
AI智能体全栈开发工程化规范 备忘 ~ fastAPI+Next.js
javascript·人工智能·fastapi
不绝1915 小时前
UGUI——进阶篇
前端
~牧马~5 小时前
【记录63】electron打包vue项目之踩坑
vue.js·electron·electron与node兼容
Exquisite.5 小时前
企业高性能web服务器(4)
运维·服务器·前端·网络·mysql
铅笔侠_小龙虾5 小时前
Flutter Demo
开发语言·javascript·flutter