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

vue3通过v-model实现父子组件通信

单一值传递

父组件

<template>
  <div >
    <h1>v-model实现父子组件通讯</h1>
    <hr>
    <child1 v-model="num"></child1>
    <!-- 上下两个是等价的 -->
    <child1 :modelValue="num" @update:modelValue="handle"></child1>
  </div>
</template>

<script setup>
import {ref} from 'vue'
import child1 from './child1.vue';
let num = ref(0);
const handle =(value)=> {
  num.value = value
}
</script>

子组件

<template>
  <div>
    <h1>我是子组件</h1>
    <!-- 父组件传过来的值 -->
    <h3>{{ modelValue }}</h3>
    <button @click="$emit('update:modelValue', modelValue+1)">修改父组件的值</button>
  </div>
</template>

<script setup>
let props = defineProps(['modelValue'])
const $emit = defineEmits(['update:modelValue'])
</script>

在这里插入图片描述

多个v-model实现父子组件传值

父组件

<template>
  <div >
    <h1>v-model实现父子组件通讯</h1>
    <hr>
    <child1 v-model:firstnum="num1" v-model:secondnum="num2"></child1>
  </div>
</template>

<script setup>
import {ref} from 'vue'
import child1 from './child1.vue';
let num1 = ref(0);
let num2 = ref(0);
</script>

<style lang="scss" scoped></style>

子组件

<template>
  <div>
    <h1>我是子组件</h1>
    <!-- 父组件传过来的值1 -->
    <h3>{{ firstnum }}</h3>
    <!-- 父组件传过来的值2 -->
    <h3>{{ secondnum }}</h3>
    <button @click="handler">修改父组件的值</button>
  </div>
</template>

<script setup>
let props = defineProps(['firstnum', 'secondnum'])
const $emit = defineEmits(['update:firstnum', 'update:secondnum'])
const handler = () => {
  $emit('update:firstnum', props.firstnum+1)
  $emit('update:secondnum', props.secondnum+4)
}
</script>

在这里插入图片描述

相关文章:

  • R语言如何实现多元线性回归
  • JAVA将PDF转图片
  • SSM实践基地管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目
  • 力扣LCR 100题 三角形最小路径和 C++ 动态规划 附Java代码
  • 3D数字孪生场景编辑器
  • ElasticSearch02
  • PostgreSQL数据库初接触
  • ElasticSearch01
  • 大便后的多巴胺
  • oracle的debjob挂載及查詢
  • RF-遥控器远程调试
  • 什么是工业物联网(IOT)?这样的IOT平台你需要吗?——青创智通
  • SELinux零知识学习二十九、SELinux策略语言之类型强制(14)
  • 聚类笔记:HDBSCAN
  • springboot2.1升级2.7报引入groovy4.0报找不到org.codehaus.groovy4.0的问题
  • Scrapy爬虫异步框架(一篇文章齐全)
  • HDFS元数据管理/磁盘清理维护
  • ubuntu操作系统中docker下Hadoop分布式前置环境配置实验
  • Java LinkedList
  • Rust开发——数据对象的内存布局
  • 济南市委副秘书长吕英伟已任历下区领导
  • 外交部:中方愿根据当事方意愿,为化解乌克兰危机发挥建设性作用
  • 18世纪“精于剪切、复制、粘贴”的美国新闻界
  • 2025年上海好护士揭晓,上海护士五年增近两成达12.31万人
  • 专访|家人眼中的周碧初:用色彩写诗,实践油画“民族化”
  • 人民时评:莫让“假俗乱”讲解侵蚀“文博热”