Vue3中的defineExpose的认识

news2024/9/27 15:33:34

文章目录

    • defineExpose
    • 子组件
    • 父组件:
    • 总结:

defineExpose

使用 <script setup> 的组件是默认关闭的——即通过模板引用或者 $parent 链获取到的组件的公开实例,** 不会 **暴露任何在 <script setup> 中声明的绑定。
可以通过 defineExpose 编译器宏来显式指定在 <script setup> 组件中要暴露出去的属性:

<script setup>
import { ref } from 'vue'

const a = 1
const b = ref(2)

defineExpose({
  a,
  b
})
</script>

demo案例:
写一个子组件,里面有一个message和add方法,然后再父组件中展示message和调用add的方法,代码如下:

子组件

<template>
<div class='content'>
 <h1>{{count}}</h1>
</div>
</template>

<script setup >
import { ref } from 'vue'
 const count = ref(0)
 const message = ref('Hello from Child!')
 const add = () => {
   count.value++
 }
 defineExpose({
   message,
   add
 })
</script>

父组件:

<template>
  <div class='content'>
    <h1>{{ parentData }}</h1>
    <Child ref="child" />
    <button @click="$refs.child.add()">父级按钮</button>
  </div>
</template>

<script setup>
import Child from './Child.vue'
import { ref, onMounted } from 'vue'
const child = ref(null)
const parentData = ref('This is the parent data')
onMounted(() => {
  parentData.value = child.value.message
})
</script>

点击按钮2下,在父组件页面展示的效果:

在这里插入图片描述

总结:

defineExpose 用于在 <script setup> 中显式暴露组件内部状态和方法
父组件可以通过 ref 访问子组件实例并调用暴露的属性和方法
使用 defineExpose 可以让组件更加模块化和可控,只有显式暴露的部分才能被外部访问,增强了封装性和安全性
这个功能在组件之间需要进行复杂交互时特别有用,尤其是在大型项目中,能够显著提升代码的可读性和可维护性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2088712.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

BH1750光照传感器详解(STM32)

目录 一、介绍 二、传感器原理 1.原理图 2.工作原理&#xff1a;结构框图 三、程序设计 main.c文件 bh1750.h文件 bh1750.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 BH1750是一款数字型光照强度传感器&#xff0c;能够获取周围环境的光照强度。内置16bitAD转…

通帆科技“液氢微型发电站”:点亮氢能产业新征程

新质生产力的蓬勃发展正以磅礴之力推动产业的转型升级&#xff0c;氢能产业作为新质生产力的璀璨之星&#xff0c;成为新能源领域的关键增长极。 8 月 28 日&#xff0c;通帆新能源科技&#xff08;山东&#xff09;有限公司精心研发的 500kw “液氢微型发电站”产品成功下线交…

【C/C++】C语言中的内存分布

在C语言中&#xff0c;内存分布主要可以分为以下几个区域&#xff1a; 栈&#xff08;Stack&#xff09;&#xff1a;由编译器自动分配和释放&#xff0c;存放函数的参数值、局部变量的值等。 堆&#xff08;Heap&#xff09;&#xff1a;一般由程序员分配和释放&#xff0c;若…

电容应用原理

电容器是电子电路中不可或缺的元件&#xff0c;其在电路中承担的任务繁多&#xff0c;既可以用作储能元件&#xff0c;也能用于滤波、旁路和去耦。 电容的基本原理 电容的基本工作原理可以理解为电荷的存储和释放。电容器由两块金属板和夹在中间的绝缘介质构成&#xff0c;当…

Unity 中使用SQLite数据库

文章目录 0.参考文章1.Presentation —— 介绍2.&#xff08;SQLite4Unity3d&#xff09;Unity中直接使用SQLite的插件3.创建数据库4.创建表5.Navicat Premium&#xff08;数据库可视化&#xff09;6.增删改查6.1 增6.2 删6.3 改6.4 查 0.参考文章 https://blog.csdn.net/Chin…

结合系统架构设计的非功能性需求开发一套文化用品商城系统

案例 阅读以下关于软件系统设计的叙述&#xff0c;在答题纸上回答问题 1 至问题 3。 【题目】 某文化产业集团委托软件公司开发一套文化用品商城系统&#xff0c;业务涉及文化用品销售、定制、竞拍和点评等板块&#xff0c;以提升商城的信息化建设水平。该软件公司组织项目组完…

2024最新盘点:这12款plm项目管理系统值得推荐!

本文将盘点主流的plm项目管理系统&#xff0c;为企业选型提供参考 。 高效的plm项目管理系统是确保工程顺利进行、按时交付以及控制成本的关键&#xff0c;据美国建筑行业研究院的研究数据表明&#xff0c;实施高效项目管理的建筑企业&#xff0c;能够将项目成本降低 5%-10%。我…

1.7 离散频率

1.7 离散频率 离散时间和采样率 模拟到数字转换器 (ADC) 对连续时间信号进行采样以生成离散时间样本。对于数字信号处理器来说&#xff0c;该信号仅存储在内存中作为一系列数字。因此&#xff0c;采样率 F S F_S FS​ 的知识是数字域中信号处理的关键。 对于时间而言&#…

光敏电阻传感器详解(STM32)

目录 一、介绍 二、传感器原理 1.光敏电阻传感器介绍 2.原理图 三、程序设计 main.c文件 ldr.h文件 ldr.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 光敏电阻器是利用半导体的光电导效应制成的一种电阻值随入射光的强弱而改变的电阻器&#xff0c;又称为光…

计网_整体概念逻辑简单过一遍

1. 简述四层TCP/IP 网络模型 由于 OSI 模型实在太复杂&#xff0c;提出的也只是概念理论上的分层&#xff0c;并没有提供具体的实现方案。 事实上&#xff0c;我们比较常见&#xff0c;也比较实用的是四层模型&#xff0c;即 TCP/IP 网络模型&#xff0c; 1.1 应用层 在四…

萤石云 C++ SDK使用指南

今天继续指南系列&#xff0c;给出了萤石云QtDemo配置使用以及sdk开发中常见问题的指南 SDK下载 一、demo使用配置 1、demo环境配置 Demo 所使用Qt SDK版本&#xff1a;Qt4.8.5 Demo两种开发模式&#xff1a; 下载Qt Creator for Windows&#xff0c;使用Qt Creator作为I…

计算机毕业设计选题推荐-办公管理系统-Java/Python项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

【方法】如何编辑“只读方式”下的Word文档?

以“只读方式”打开的Word文档&#xff0c;怎样才能正常编辑呢&#xff1f;Word文档有两种“只读方式”&#xff0c;我们分别来看看如何编辑。 方式一&#xff1a;无密码的只读方式 当Word文档设置了无密码的“只读方式”&#xff0c;打开文档后会看到提示“是否以只读方式打开…

设计与实现基于Java的零工市场系统

零工市场&#xff0c;也被称为临时工市场或自由职业市场&#xff0c;为求职者和雇主提供了一个灵活的、按需匹配的工作机会平台。为了满足日益增长的零工经济需求&#xff0c;我们设计并实现了一个基于Java的零工市场系统&#xff0c;该系统具备用户管理、任务发布、任务申请、…

基于Python的音乐推荐系统的设计与实现---附源码92641

摘 要 基于Python大数据技术的音乐推荐系统设计与实现旨在利用大数据处理和分析技术&#xff0c;为用户提供个性化、精准的音乐推荐服务。该系统将结合用户行为数据、音乐特征和大规模数据集&#xff0c;采用机器学习和深度学习算法&#xff0c;实现智能化的音乐推荐功能。 系统…

[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-21读写I2C接口EEPROM实验

软件版本&#xff1a;VIVADO2021.1 操作系统&#xff1a;WIN10 64bit 硬件平台&#xff1a;适用 XILINX A7/K7/Z7/ZU/KU 系列 FPGA 实验平台&#xff1a;米联客-MLK-H3-CZ08-7100开发板 板卡获取平台&#xff1a;https://milianke.tmall.com/ 登录“米联客”FPGA社区 http…

B样条曲线法

1. B样条曲线法概述 1.1 B样条曲线法的定义与发展 B样条曲线法是一种基于控制点和节点向量的数学模型&#xff0c;用于几何建模和曲线设计。该方法由Paul de Casteljau和Pierre Bezier等人在20世纪60年代提出&#xff0c;并迅速发展成为一种广泛应用于计算机辅助设计&#xf…

Docker php文件本地包含--pearcmd.php利用

目录 前言 环境搭建 pearcmd.php巧妙利用 渗透 前言 docker包含日志文件&#xff0c;基本不可能&#xff0c;就以我自身的一个项目来说&#xff0c;在尝试包含日志文件时发现&#xff0c;客户将他的日志文件从定向到了设备文件&#xff0c;而php没有包含设备文件的权限 然…

【Python Web开发】Flask+HTML学习笔记

目录 Flask框架一、安装flask库二、运行一个网页三、库函数及变量 HTML标签语言一、基本格式二、标签2.1 块级标签2.1.1 标题2.1.2 div2.1.3 图片2.1.4 列表2.1.5 表格 2.2 行内标签2.2.1 span2.2.2 超链接2.2.3 输入 2.3 其他标签2.3.1 提交表单 Flask框架 一、安装flask库 …

Unity 3D学习资料集合

本文包含了unity3D 游戏开发相关的学习资料&#xff0c;包含了入门、进阶、性能优化、面试和书籍等学习资料&#xff0c;含金量非常高&#xff0c;在这里分享给大家&#xff0c;欢迎收藏。 学习社区 1.Unity3D开发者 Unity3D开发者论坛是一个专注于Unity引擎的开发者社区。在这…