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 分钟前
OpenClaw github 技能:让 GitHub 操作像聊天一样简单
前端
Ekehlaft2 分钟前
同题画图大考,AiPy 章鱼适配性拉满,OpenClaw 龙虾全程 “哑火”
前端
蕨类植物2 分钟前
Fastify 模块化项目实战(一) — 技术选型
javascript
掘金酱11 分钟前
小册上新|玩🦐吗?ai 编程全栈指南了解一下?
前端·人工智能·ai编程
222you20 分钟前
Java 并发编程(1)
java·开发语言
小小小小宇28 分钟前
富文本编辑器知识体系(一)
前端
C++ 老炮儿的技术栈29 分钟前
Linux 文件系统目录架构全解析
linux·服务器·c语言·开发语言·c++
发现一只大呆瓜40 分钟前
深度拆解 fetch-event-source库实现原理
前端·javascript·面试
2601_9534656142 分钟前
HLS.js 原生开发!m3u8live.cn打造最贴合项目的 M3U8 在线播放器
开发语言·前端·javascript·python·json·ecmascript·前端开发工具