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

Vue3:props实现组件通信

目录

一.性质

1.实现组件的复用性

2.实现组件的数据流

3.实现组件的状态管理

4.实现组件的交互

二.使用

1.父组件

2.子组件

三.代码

1.父组件代码

2.子组件代码

四.效果


一.性质

Vue3 中 props 是组件的一个重要特性,用于父组件向子组件传递数据。props 可以定义组件接收的属性,子组件可以通过 props 属性来接收父组件传递的数据,并在组件内部进行使用。props 的作用主要有以下几点:

1.实现组件的复用性

通过 props 可以将不同的属性传递给同一个组件,实现组件的复用。

2.实现组件的数据流

props 可以实现父组件向子组件的数据传递,形成数据流。

3.实现组件的状态管理

props 可以将父组件的状态传递给子组件,实现子组件的状态管理。

4.实现组件的交互

props 可以将父组件的交互事件传递给子组件,实现组件的交互。

二.使用

1.父组件

2.子组件

三.代码

1.父组件代码

<template>
    <div class="grandpa">
    <h4>父组件</h4>
		<h4>父亲的汽车:{{ car }}</h4>
		<h4>儿子的玩具:{{ toy }}</h4>
		<father :car="car" :getToy="getToy"/>
    </div>
</template>


<script setup lang="ts" name="grandpa">
import father from '../components/father.vue'

import { ref } from "vue";

	// 数据
	const car = ref('宝马')
	const toy = ref()
	// 方法
	function getToy(value:string){
		toy.value = value
	}

</script>

<style >
.grandpa {
  background-color: orange;
}


</style>


 

2.子组件代码

<template>
    <div class="father">
        <h4>子组件</h4>
		<h4>儿子的玩具:{{ toy }}</h4>
		<h4>父亲的汽车:{{ car }}</h4>
		<button @click="getToy(toy)">玩具给父亲</button>
    </div>

    <son v-bind="$attrs"/>
    
</template>

<script setup lang="ts" name="father">

    import { ref } from "vue";
	const toy = ref('变形金刚')
	defineProps(['car','getToy'])

</script>


<style>
.father{
    background-color: skyblue;
}

h4{
    margin-left: 20px;
    font-size: 20px;
}
button{
    width: 120px;
    height: 40px;
    font-size: 20px;
    margin-left: 20px;
}

</style>

四.效果


http://www.kler.cn/news/312453.html

相关文章:

  • react 创建react项目
  • 高级java每日一道面试题-2024年9月14日-基础篇-如何处理事务中的性能问题?
  • 已知曲线满足正余弦函数,根据其峰值,还原出整条曲线
  • Bio-Linux-shell详解-1-从0开始
  • 【Ubuntu】虚拟机安装USB摄像头ROS驱动 usb_cam(最新方法)
  • ES5 在 Web 上的现状
  • [ffmpeg] packet
  • element-plus的菜单组件el-menu
  • 7--SpringBoot-后端开发、原理详解(面试高频提问点)
  • Web开发:ABP框架3——入门级别的接口增删改查实现原理
  • 基于SpringBoot的自习室预订系统
  • 莱卡相机sd内存卡格式化了怎么恢复数据
  • Volta无障碍的 JavaScript 工具管理器
  • Java 中使用 Redis 的几种方式优缺点对比
  • Linux 生成 git ssh 公钥
  • 站群服务器适用于哪些场景当中?
  • Linux服务器及应用环境快速部署、调试、迁移、维护、监控
  • Jenkins怎么设置每日自动执行构建任务?
  • 使用 nvm 管理 node 版本:如何在 macOS 和 Windows 上安装使用nvm
  • UniApp如何打包成客户端应用程序
  • 前后端分离集成CAS单点登录
  • Windows安装HeidiSQL教程(图文)
  • python中装饰器的作用
  • Autosar学习----AUTOSAR_SWS_BSWGeneral(六)
  • 基于协同过滤算法+PHP的新闻推荐系统
  • 无人机维修保养一对一教学技术详解
  • LaTex2024 下载安装运行HelloWorld—全流程笔记
  • 【C++篇】C++类与对象深度解析(六):全面剖析拷贝省略、RVO、NRVO优化策略
  • QT 修改全局鼠标光标样式并支持还原样式
  • 如何在多台Linux虚拟机上安装和配置Zookeeper集群