第三十一: 6. 组件通信 props

ops/2025/3/1 7:16:39/

组件通信主要解决 : 组件A 的数据 传递给 组件B  

注意:子传父的时候:第一:还是要在父给子传一个函数,子收到这个函数,在合适的时候调用这个函数,以传参的形式把东西调过去。

常见搭配形式:

6.1. 【props】

概述:props是使用频率最高的一种通信方式,常用与 :父 ↔ 子

  • 父传子:属性值是非函数

  • 子传父:属性值是函数

    在 父 传子 里面 传递:

  • <Child :car="car" >  
    在 子 里面通过 props 接收
    声明接收 props

  • defineProps(['car'])   // 然后就直接调用:<h4>父给我的车:{{ car }} </h4>

    子传父

  •  在 父 里面 先定义一个函数方法:

  • // 方法
        function getToy(value:string){
            console.log(value)
            // toy.value = value
        }

  • 在父组件里定义一个:<Child :car="car"  :sendToy="getToy"> 传递给子组件

  • 然后在 子 组件里面 接收:getToy ,用props 接收:defineProps(['car','getToy'])

  • 然后定义一个点击函数:

  • const toy = ref('奥特曼') // 这个 toy 是子组件里面的值

  • <button @click="sentToy(toy)">玩具给父亲</button>  // 注意:这里定义的 sentToy 就是指:defineProps的sentToy

  • 声明接收props

  • defineProps(['car','sentToy'])

    注意:这个可以不用定,如果是单独定义一个函数 <button @click="fasong(toy)">玩具给父亲</button>
    let props = defineProps(['car','getToy'])  // 声明接收赋值
    function fasong(){
    //console.log(props.sendToy)
     props.sendToy()
    }

父组件:

<template><div class="father"><h3>父组件,</h3><h4>我的车:{{ car }}</h4><h4>儿子给的玩具:{{ toy }}</h4><Child :car="car" :getToy="getToy"/></div>
</template>
​
<script setup lang="ts" name="Father">import Child from './Child.vue'import { ref } from "vue";// 数据const car = ref('奔驰')const toy = ref()// 方法function getToy(value:string){toy.value = value}
</script>

子组件

<template><div class="child"><h3>子组件</h3><h4>我的玩具:{{ toy }}</h4><h4>父给我的车:{{ car }}</h4><button @click="getToy(toy)">玩具给父亲</button></div>
</template>
​
<script setup lang="ts" name="Child">import { ref } from "vue";const toy = ref('奥特曼')defineProps(['car','getToy'])
</script>


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

相关文章

Spring Boot HikariCP数据库连接池入门

1. 概述 在我们的项目中&#xff0c;数据库连接池基本是必不可少的组件。在目前数据库连接池的选型中&#xff0c;主要是 Druid&#xff0c;为监控而生的数据库连接池。HikariCP&#xff0c;号称性能最好的数据库连接池。 至于怎么选择&#xff0c;两者都非常优秀&#xff0…

python-leetcode-下一个排列

31. 下一个排列 - 力扣&#xff08;LeetCode&#xff09; class Solution:def nextPermutation(self, nums: List[int]) -> None:"""Do not return anything, modify nums in-place instead."""# Step 1: Find the first decreasing element …

【MySQL】数据库安装

一、MySQL 数据库安装 1、安装 mysql 的组件 mysql 是开源的&#xff0c;完全免费。安装包下载&#xff1a;MySQL :: Download MySQL Installer mysql 安装之前确保电脑上没有其它 mysql 服务正在运行&#xff0c;防止后续安装出现问题&#xff1a;此电脑 >> 管理 >&…

Nacos数据同步原理

Nacos 数据同步原理涉及多个模块的协作&#xff0c;主要包括配置管理、服务发现和集群一致性。以下是详细讲解&#xff1a; 1. 数据模型 Nacos 的数据模型主要分为两类&#xff1a; 配置数据&#xff1a;存储应用的配置信息&#xff0c;如数据库连接、缓存配置等。 服务数据…

HTTPS 与 HTTP 的区别在哪?

HTTP与HTTPS作为互联网数据传输的核心协议&#xff0c;其通信机制与安全特性深刻影响着现代网络应用的可靠性与用户体验。本文将解析两者的通信流程、安全机制及核心差异。 一、HTTP的通信机制 先来看看HTTP是什么吧。 HTTP基于TCP/IP协议栈&#xff0c;采用经典客户端-服务…

Grok3使用体验与模型版本对比分析

文章目录 Grok的功能DeepSearch思考功能绘画功能Grok 3的独特功能 Grok 3的版本和特点与其他AI模型的比较 最新新闻&#xff1a;Grok3被誉为“地球上最聪明的AI” 最近&#xff0c;xAI公司正式发布了Grok3&#xff0c;并宣称其在多项基准测试中展现了惊艳的表现。据官方消息&am…

基于蒙特卡罗方法构建机器人全工作空间

蒙特卡罗方法简介 蒙特卡罗方法&#xff08;Monte Carlo Method&#xff09;是一种通过随机采样来解决数学问题的数值计算方法。它广泛应用于各种领域&#xff0c;包括物理学、金融、工程和计算机科学。在机械臂的运动学和控制中&#xff0c;蒙特卡罗方法可以用于路径规划、逆…

嵌入式仿真实验教学平台替换Proteus,嵌入式教学创新的新选择

近年来&#xff0c;随着物联网、人工智能等技术的快速发展&#xff0c;嵌入式系统教学对实践性和创新性的要求日益提高。传统仿真工具Proteus虽曾是教学领域的主流选择&#xff0c;但其局限性逐渐暴露。而嵌入式仿真实验教学平台凭借高仿真度、资源整合能力以及虚实结合的教学模…