Vue3 组件双向绑定的两种方法

defineProps 和 defineEmits

案例:

html 复制代码
# child
<script setup>
const props = defineProps(['modelValue'])
const emit = defineEmits(['update:modelValue'])
</script>

<template>
  <input
    :value="props.modelValue"
    @input="emit('update:modelValue', $event.target.value)"
  />
</template>
html 复制代码
# father
<Child
  :modelValue="foo"
  @update:modelValue="$event => (foo = $event)"
/>

defineModel

Vue 官网 是这样描述的:从 Vue 3.4 开始,推荐的实现方式是使用 defineModel() 因此,以后这个是实现组件双向绑定的首选。

案例:

html 复制代码
# child

<template>
  <div>Parent bound v-model is: {{ model }}</div>
  <button @click="update">Increment</button>
</template>

<script setup>
const model = defineModel()

function update() {
  model.value++
}
</script>
html 复制代码
# father

<Child v-model="countModel" />
相关推荐
指尖跳动的光1 分钟前
前端如何通过设置失效时间清除本地存储的数据?
前端·javascript
长空任鸟飞_阿康4 分钟前
MasterGo AI 实战教程:10分钟生成网页设计图(附案例演示)
前端·人工智能·ui·ai
吴名氏.7 分钟前
电子书《Java程序设计与应用开发(第3版)》
java·开发语言·java程序设计与应用开发
GDAL13 分钟前
从零开始上手 Tailwind CSS 教程
前端·css·tailwind
于慨19 分钟前
dayjs处理时区问题、前端时区问题
开发语言·前端·javascript
listhi52028 分钟前
基于MATLAB的LTE系统仿真实现
开发语言·matlab
哀木36 分钟前
理清 https 的加密逻辑
前端
ss27336 分钟前
ScheduledThreadPoolExecutor异常处理
java·开发语言
拖拉斯旋风41 分钟前
深入理解 LangChain 中的 `.pipe()`:构建可组合 AI 应用的核心管道机制
javascript·langchain
肖老师xy42 分钟前
Ai生成时间排期进度
javascript·vue.js·elementui