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

19、vue3组件通信

1、props

常见搭配形式

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

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

Father.vue

<template>
  <div>
    <h1>父亲</h1>
    <h1>父亲有遗产:【{{ moeny }}】元,要传给儿子</h1>
    <h3>父亲收到儿子送的手机:{{ erziPhone }}</h3>
    <h1>--------------------------</h1>
    <Son :father="moeny" :getIphone="getIphone"/>
  </div>
</template>

<script setup lang="ts" name="Father">
import Son from './Son.vue';
import { ref } from 'vue';
let moeny=ref(1000)
let erziPhone=ref()

function getIphone(value:string){
  erziPhone.value=value

}
 
</script>

<style scoped>

</style>

Son.vue

<template>
  <div>
   <h1>儿子</h1>
   <h1>儿子要送父亲一部【{{ iphone }}】手机</h1>
   <h3>继承父亲的遗产:{{ father }}</h3>
   <button @click="getIphone(iphone)">送给父亲手机</button>
  </div>
</template>

<script setup lang="ts" name="Son">
import { ref } from 'vue';
let iphone=ref('苹果')
 
 defineProps(['father','getIphone'])
</script>

<style scoped>

</style>

2、自定义事件

  1. 概述:自定义事件常用于:子 => 父。

  2. 注意区分好:原生事件、自定义事件。

  • 原生事件:

    • 事件名是特定的(clickmosueenter等等)
    • 事件对象$event: 是包含事件相关信息的对象(pageXpageYtargetkeyCode
  • 自定义事件:

    • 事件名是任意名称
    • 事件对象$event: 是调用emit时所提供的数据,可以是任意类型!!!

Father.vue

<template>
  <div>
    <h1>父亲</h1>
    <h1>父亲有遗产:【{{ moeny }}】元,要传给儿子</h1>
    <h3>父亲收到儿子送的手机:{{ erziPhone }}</h3>
    <h1>--------------------------</h1>
    <!-- 给子组件绑定自定义事件 -->
    <Son :father="moeny" @get-iphone="Iphone"/>
  </div>
</template>

<script setup lang="ts" name="Father">
import Son from './Son.vue';
import { ref } from 'vue';
let moeny=ref(1000)
let erziPhone=ref('')

function Iphone(value:string){
  console.log('value',value)
  erziPhone.value=value

}
 
</script>

<style scoped>

</style>

Son.vue

<template>
  <div>
   <h1>儿子</h1>
   <h1>儿子要送父亲一部【{{ iphone }}】手机</h1>
   <h3>继承父亲的遗产:{{ father }}</h3>
   <button @click="emit('get-iphone',iphone)">送给父亲手机</button>
  </div>
</template>

<script setup lang="ts" name="Son">
import { ref } from 'vue';
let iphone=ref('苹果')
 
 defineProps(['father'])
//  声明事件
const emit=defineEmits(['get-iphone'])
</script>

<style scoped>

</style>


http://www.kler.cn/a/451798.html

相关文章:

  • FastAPI 与 SQLModel 分页功能实现指南
  • OSI 网络 7 层模型
  • 代码随想录Day37 动态规划:完全背包理论基础,518.零钱兑换II,本周小结动态规划,377. 组合总和 Ⅳ,70. 爬楼梯(进阶版)。
  • 计算机网络——练习题
  • Java 中压缩图片并应用 EXIF 旋转信息
  • 程控电阻箱应用中需要注意哪些安全事项?
  • STM32文件详解
  • 从 GitLab.com 到 JihuLab.com 的迁移指南
  • leetcode之hot100---19删除链表的第N个节点(C++)
  • GitLab 将停止为中国区用户提供服务,60天迁移期如何应对? | LeetTalk Daily
  • 【NLP高频面题 - 高效微调篇】什么是提示微调?
  • 全国硕士研究生入学考试(考研)备考要点之备考原则
  • GMV 含义
  • 【R语言遥感技术】“R+遥感”的水环境综合评价方法
  • 接口请求中调试可以看到Origin,其具体的作用
  • 【文档搜索引擎】缓冲区优化和索引模块小结
  • 框架专题:设计模式
  • mvn install:install-file jar 打入本地仓库
  • 虚拟机桥接模式
  • Spark和Hive的联系
  • 【视觉惯性SLAM:SLAM中常用的数学基础知识】
  • BOM清单在制造企业运营中的全方位作用解析
  • 高并发处理 --- Caffeine内存缓存库
  • 【每日学点鸿蒙知识】私仓搭建、resources创建文件夹、hvigor如何动态设置版本、SM3摘要算法、SP存储报错等
  • 【MySQL】7.0 入门学习(七)——MySQL基本指令:帮助、清除输入、查询等
  • mysql的存储碎片