Vue3组件通信方式 v-model 通信

ops/2024/10/18 20:32:43/

在子组件中,v-model会将modelValue prop和update:modelValue event绑定在一起,当子组件的input事件触发时会emit一个update:modelValue event,从而更新父组件的message。而在父组件中,v-model会将message与modelValue prop和update:modelValue event绑定在一起,当父组件更新message时,会通过modelValue prop将message传递给子组件,在子组件中输入内容时,会通过update:modelValue event将新的内容传递给父组件更新message。这样就实现了父子组件之间的数据同步。
父组件

<template><div><h1>v-model:钱数{{ money }}{{pageNo}}{{pageSize}}</h1><input type="text" v-model="info" /><hr /><!-- props:父亲给儿子数据 --><!-- <Child :modelValue="money" @update:modelValue="handler"></Child> --><!-- v-model组件身上使用第一:相当有给子组件传递props[modelValue] = 10000第二:相当于给子组件绑定自定义事件update:modelValue--><Child v-model="money"></Child><hr /><Child1 v-model:pageNo="pageNo" v-model:pageSize="pageSize"></Child1></div>
</template><script setup lang="ts">
//v-model指令:收集表单数据,数据双向绑定
//v-model也可以实现组件之间的通信,实现父子组件数据同步的业务
//父亲给子组件数据 props
//子组件给父组件数据 自定义事件
//引入子组件
import Child from "./Child.vue";
import Child1 from "./Child1.vue";
import { ref } from "vue";
let info = ref("");
//父组件的数据钱数
let money = ref(10000);
//自定义事件的回调
const handler = (num) => {//将来接受子组件传递过来的数据money.value = num;
};//父亲的数据
let pageNo = ref(1);
let pageSize = ref(3);
</script><style scoped>
</style>

子组件可以在<script setup>中使用defineEmits和defineProps来定义props和event。使用v-model时需要定义一个名为modelValue的prop和一个update:modelValue的event

<template><div class="child2"><h1>同时绑定多个v-model</h1><button @click="handler">pageNo{{ pageNo }}</button><button @click="$emit('update:pageSize', pageSize + 4)">pageSize{{ pageSize }}</button></div>
</template><script setup lang="ts">
let props = defineProps(["pageNo", "pageSize"]);
let $emit = defineEmits(["update:pageNo", "update:pageSize"]);
//第一个按钮的事件回调
const handler = () => {$emit("update:pageNo", props.pageNo + 3);
};
</script><style scoped>
.child2 {width: 300px;height: 300px;background: hotpink;
}
</style>

http://www.ppmy.cn/ops/105059.html

相关文章

国内大厂疯抢大模型人才,大模型人才的春天来了吗?

绝对不要怀疑国内大厂对于人才的投入力度&#xff0c;几乎所有的互联网大厂都有这种对于高端人才的招聘计划&#xff0c;特点就是「高薪」「高要求」。 你看腾讯的青云计划提到的&#xff0c;它的目标是面向全球&#xff0c;给高薪、给定制化的培养、做核心业务、目标是解决前…

springblade-JWT认证缺陷漏洞CVE-2021-44910

漏洞成因 SpringBlade前端通过webpack打包发布的,可以从其中找到app.js获取大量接口 然后直接访问接口:api/blade-log/api/list 直接搜索“请求未授权”,定位到认证文件:springblade/gateway/filter/AuthFilter.java 后面的代码审计可以参考 转载:SpringBlade框架JWT认…

新华三H3C HCL配置IS-IS基本配置

实验目标 完成本实验,应该能够达到以下目标。 ●掌握如何在路由器进行单区域IS-IS的基本配置 ●掌握如何在路由器上查看IS-IS路由表、邻居信息 ●掌握如何在路由器上查看IS-IS的LSDB信息 实验拓扑 IP地址表 实验任务 单区域配置&#xff1a; 在本实验任务中,需要在路由器上…

Github 2024-08-30 Java开源项目日报Top9

根据Github Trendings的统计,今日(2024-08-30统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Java项目9C++项目1JavaGuide - Java 程序员学习和面试指南 创建周期:2118 天开发语言:Java协议类型:Apache License 2.0Star数量:140773 个F…

基于python+大数据爬虫技术+数据可视化+Spark的电力能耗数据分析与可视化平台设计与实现

博主介绍&#xff1a;✌全网粉丝50W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围&#xff1a;SpringBoot、Vue、SSM、HLM…

业务资源管理模式语言05

当资源是唯一时&#xff0c;属性“Status&#xff08;状态&#xff09;”应该加到“Resource&#xff08;资源&#xff09;”类中用来控制生命周期&#xff0c;例如&#xff0c;一个汽车修理商店&#xff0c;汽车的状态可能是&#xff1a;“工作”、“报废”和“修理”。 略图…

超声波的应用

功能实现请看最顶端视频 配合舵机实现指定距离转动功能&#xff1a; 主函数代码&#xff1a; 主函数部分&#xff1a; 首先定义了一个用于调整电机 PWM 值的变量 pwmval 和用于存储超声波测量距离的变量 length。 调用 HC_SR04Config 函数配置超声波传感器&#xff0c;usart…

javascript的成熟分类

JavaScript 是一种广泛应用于前端、后端以及全栈开发的编程语言。随着 JavaScript 的发展&#xff0c;它的应用领域和技术栈也越来越广泛。JavaScript 的成熟分类可以从应用场景和技术栈两个角度来进行划分&#xff0c;下面是对 JavaScript 的成熟分类的详细说明。 一、按应用…