当前位置: 首页 > article >正文

vue 父组件和子组件中v-model和props的使用和区别

一、v-model

1、v-model 可以在组件上使用以实现双向绑定。即父组件的值可以传递给子组件,子组件的值修改后,父组件的值会同步更新。

Vue 3.4 开始,推荐的实现方式是使用 defineModel() 宏;

2、示例:最常用的使用方式:父组件的值,传值给子组件,子组件的input绑定了此字段,这样子组件input的内容修改时,父组件里的值便会同步更新,示例如下

Vue SFC Playground

父组件
<script setup>
import Child from './Child.vue'
import { ref } from 'vue'

const msg = ref('Hello World!')
</script>

<template>
  <h1>{{ msg }}</h1>
  <Child v-model="msg" />
</template>
子组件
<script setup>
const model = defineModel()
</script>

<template>
  <span>My input</span> <input v-model="model">
</template>

3、其他实例:父组件和子组件,弹窗的数据双向绑定

4、延伸:父组件想要传参给子组件多个双向绑定的数据,可以是用v-model的参数(v-model:title)

父组件
<script setup>
import { ref } from 'vue'
import MyComponent from './MyComponent.vue'
  
const bookTitle = ref('v-model argument example')
const content = ref('content')
</script>

<template>
  <h1>{{ bookTitle }}</h1>
  <h1>{{ content }}</h1>
  <MyComponent v-model:title="bookTitle" v-model:content="content" />
</template>
子组件
<script setup>
const title = defineModel('title')
const content = defineModel('content')
</script>

<template>
  <input type="text" v-model="title" />
  <input type="text" v-model="content" />
</template>

二、props属性

props也是父组件的值传递给子组件,但是是单向数据流;子组件的值改变时,父组件的值不会同步更新,需要结合$emit('someEvent')来实现子组件的值同步更新到父组件;

我的理解是v-model的底层机制等同于props和$emit('someEvent')结合使用。


http://www.kler.cn/a/555507.html

相关文章:

  • [AI相关]生成视频-第一个项目,20k星开源MoneyPrinterTurbo
  • PostgreSQL 与 MySQL 有哪些区别
  • C++中间件DDS介绍
  • Java高级研究.练习
  • UGUI RectTransform的SizeDelta属性
  • docker安装ros2 并在windows中显示docker内ubuntu系统窗口并且vscode编程
  • IM 即时通讯系统-02-聊一聊 IM 要如何进行架构设计?
  • Ubuntu20.04.2安装Vmware tools
  • 解决NoClassDefFoundError:org/springframework/aot/AotDetector错误的一个方案
  • 【大语言模型_4】源码编译vllm框架cpu版
  • Git LFS介绍(Large File Storage)大文件扩展,将大文件存储在外部存储,仓库中只记录文件的元数据(大文件的指针,类似一个小的占位符文件)
  • 【设计模式精讲】创建型模式之单例模式(饿汉式、懒汉式、双重校验、静态内部类、枚举)
  • Linux系统编程基础详解
  • 阿里云百炼通义大模型
  • C++ Primer 库-IO类
  • 用大内存主机下载Visual Studio
  • 淘宝/天猫店铺订单数据导出、销售报表设计与数据分析指南
  • 了解ffmpeg,安装并配置环境变量
  • 银河麒麟系统安装mysql5.7【亲测可行】
  • Java——链表(LinkedList)