当前位置: 首页 > 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>

在这里插入图片描述

http://www.lryc.cn/news/250819.html

相关文章:

  • java设计模式学习之【桥接模式】
  • prometheus|云原生|kubernetes内部安装prometheus
  • 利用Python中的Manim进行数学绘画和创作
  • Uniapp
  • HNU-青蛙与蚊子
  • 【新论文】【模型攻击】DiffAttack 针对基于扩散的对抗性净化的逃避攻击
  • 【Redis缓存】RedisTemplate如何获取符合要求的key,批量获取key
  • springboot核心原理之@SpringbootApplication
  • 阻抗匹配电阻原理及其应用
  • IDEA2023安装教程(超详细)
  • 【MySql】悲观锁和乐观锁的介绍
  • 手写实现一个动态代理框架
  • Leetcode226. 翻转二叉树
  • 使用WalletConnect Web3Modal v3 链接钱包基础教程
  • 黄金比例设计软件Goldie App mac中文版介绍
  • el-select实现可复制一段“关键词“(多个)实现搜索 以及 回车选中搜索项
  • C++解析xml示例
  • 记录 | linux find+rm查找并直接删除
  • 24.有哪些生命周期回调方法?有哪几种实现方式?
  • C++详解
  • mybatis数据输入-实体类型的参数
  • Java-接口
  • mysql常用命令行代码
  • Python压缩、解压文件
  • 面试就是这么简单,offer拿到手软(一)—— 常见非技术问题回答思路
  • 134. 加油站(贪心算法)
  • Springboot3+vue3从0到1开发实战项目(二)
  • Spring中Bean的生命周期
  • IndexOutOfBoundsException: Index: 2048, Size: 2048] Controller接收对象集合长度超过2048错误
  • 2023年中国消费金融行业研究报告