Vue3学习(组合式API——ref模版引用与defineExpose编译宏函数)

目录

一、ref模版引用。

(1)基本介绍。

(2)核心基本步骤。(以获取DOM、组件为例)

(3)案例:获取dom对象演示。

<1>需求:点击按钮,让输入框聚焦。

(4)案例:获取组件实例内的属性和方法。(defineExpose编译宏函数)

二、ref模版引用与defineExpose编译宏函数小结。


一、ref模版引用。

(1)基本介绍。
  • ref 模板引用是 Vue 提供的直接操作 DOM 或子组件的工具。
  • 通过ref标识获取页面中真实的dom对象或者组件实例对象,从而就可以调用dom里面的属性和方法、组件内的属性和方法
  • 在 Vue3 组合式 API 中,ref 模板引用是用于在 JavaScript 中直接获取 DOM 元素或子组件实例引用的机制
(2)核心基本步骤。(以获取DOM、组件为例)
  1. 使用 ref 函数创建一个(ref对象)响应式引用(如 const inputRef = ref(null))。其中初始值通常设为 null(表示无引用)。
  2. 通过 ref 指令将变量与 DOM 元素或子组件关联。(如 <input ref="inputRef" /><ChildComponent ref="childRef" />)。这一步就是通过ref标识绑定ref对象到标签
  3. 模板渲染完成后!!ref 变量会自动指向对应的 DOM 元素或子组件实例。可在 onMounted 钩子(生命周期函数)或其他逻辑中使用。
(3)案例:获取dom对象演示。
<1>需求:点击按钮,让输入框聚焦。
  • 代码示例。
<script setup>
//ref模版引用
import {onMounted, ref} from "vue";
//1.调用ref函数,生成一个ref对象
const input = ref(null)//使用生命周期钩子:onMounted
onMounted(() => {//可以在页面渲染完成后,输入框自动聚焦/*input.value.focus()*/
})const inputFocus = () =>{console.log(input.value)//3.通过ref对象.value即可访问绑定到的元素(必须渲染完成后才能拿到)input.value.focus()
}
</script><template><div>
<!--    2.通过ref标识,进行绑定 --><input ref="input" type="text"><button @click="inputFocus" style="margin-left: 10px">点击让输入框聚焦</button></div>
</template><style scoped>
</style>
  • 效果。


(4)案例:获取组件实例内的属性和方法。(defineExpose编译宏函数)
  • 默认情况下:<script setup>语法糖下组件内部的属性和方法是不开放给父组件访问的!


  • 想在父组件访问到可使用 defineExpose 编译宏指定属性、方法允许访问!!
  • App.vue代码示例。
<script setup>
//引入子组件
import Test from "./components/Test.vue";
//ref模版引用
import {ref} from "vue";
//1.调用ref函数,生成一个ref对象
const testRef = ref(null)
const getTest = () => {console.log(testRef.value)
}
</script><template><div><h1>父组件App.vue</h1><div class="test"><!--    2.通过ref标识,进行绑定 --><Test ref="testRef"></Test><button @click="getTest">获取组件内部属性和方法</button></div></div>
</template><style scoped>
.test {border: 1px solid #000;padding: 10px;
}
</style>
  • Test.vue代码示例。
<script setup>
const count = 999
const sayHi = () =>{console.log('打招呼')
}
defineExpose({count,sayHi
})
</script><template><div><h2>我是用于测试的组件</h2></div>
</template><style scoped></style>
  • 页面渲染效果。


  • 父组件中通过ref模版引用获取组件实例并使用组件内部的属性和函数




二、ref模版引用与defineExpose编译宏函数小结。

  1. 获取ref模版引用的时机是:组件挂载完毕之后!
  2. defineExpose编译宏函数的作用:显示暴露组件内部的属性和方法(函数)

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

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

相关文章

公链开发及其配套设施:钱包与区块链浏览器

公链开发及其配套设施&#xff1a;钱包与区块链浏览器的技术架构与生态实践 ——2025年区块链基础设施建设的核心逻辑与创新突破 一、公链开发&#xff1a;构建去中心化世界的基石 1. 技术架构设计的三重挑战 公链作为开放的区块链网络&#xff0c;需在性能、安全性与去中心…

Kotlin 作用域函数(let、run、with、apply、also)对比

Kotlin 的 作用域函数&#xff08;Scope Functions&#xff09; 是简化代码逻辑的重要工具&#xff0c;它们通过临时作用域为对象提供更简洁的操作方式。以下是 let、run、with、apply、also 的对比分析&#xff1a; 一、核心区别对比表 函数上下文对象引用返回值是否扩展函数…

14、Python时间表示:Unix时间戳、毫秒微秒精度与time模块实战

适合人群&#xff1a;零基础自学者 | 编程小白快速入门 阅读时长&#xff1a;约5分钟 文章目录 一、问题&#xff1a;计算机中的时间的表示、Unix时间点&#xff1f;1、例子1&#xff1a;计算机的“生日”&#xff1a;Unix时间点2、答案&#xff1a;&#xff08;1&#xff09;U…

AI日报 - 2024年5月17日

&#x1f31f; 今日概览 (60秒速览) ▎&#x1f916; 大模型前沿 | OpenAI推出自主编码代理Codex&#xff1b;Google DeepMind发布Gemini驱动的编码代理AlphaEvolve&#xff0c;能设计先进算法&#xff1b;Meta旗舰AI模型Llama 4 Behemoth发布推迟。 Codex能并行处理多任务&…

DriveMM:用于自动驾驶的一体化大型多模态模型——论文阅读

《DriveMM: All-in-One Large Multimodal Model for Autonomous Driving》2024年12月发表&#xff0c;来自中山大学深圳分校和美团的论文。 大型多模态模型&#xff08;LMM&#xff09;通过整合大型语言模型&#xff0c;在自动驾驶&#xff08;AD&#xff09;中表现出卓越的理解…

C++_STL_map与set

1. 关联式容器 在初阶阶段&#xff0c;我们已经接触过STL中的部分容器&#xff0c;比如&#xff1a;vector、list、deque、 forward_list(C11)等&#xff0c;这些容器统称为序列式容器&#xff0c;因为其底层为线性序列的数据结构&#xff0c;里面 存储的是元素本身。那什么是…

【嵌入式开发-RGB 全彩 LED】

嵌入式开发-RGB 全彩 LED ■ RGB 全彩 LED简介■ 电路设计■ ■ RGB 全彩 LED简介 RGB 全彩 LED 模块显示不同的颜色。 ■ 电路设计 全彩 LED 使用 PA5、 蓝色&#xff08;B&#xff09; TIM2_CHN3 PA1、 绿色&#xff08;G&#xff09;TIM2_CHN2 PA2、 红色&#xff08;R&am…

计算机网络:手机和基站之间的通信原理是什么?

手机与基站之间的通信是无线通信技术的核心应用之一,涉及复杂的物理层传输、协议交互和网络管理机制。以下从技术原理、通信流程和关键技术三个层面深入解析这一过程: 一、蜂窝网络基础架构 1. 蜂窝结构设计 基本原理:将服务区域划分为多个六边形“蜂窝小区”,每个小区由*…

【Docker】Docker安装RabbitMQ

目录 1.拉取镜像 2. 创建挂载目录 3.创建和启动 4.登录管理端 1.拉取镜像 推荐使用带 Web 管理界面的官方镜像&#xff08;management&#xff09; # 拉取docker镜像 docker pull rabbitmq:management响应内容&#xff1a; 2. 创建挂载目录 创建挂载目录和日志目录 #rabb…

交叉编译源码的方式移植ffmpeg-rockchip

获取ffmpeg源码 git submodule add -f https://github.com/FFmpeg/FFmpeg.git thirdparty/FFmpeg 瑞芯微ffmpeg-rk git clone https://github.com/jjm2473/ffmpeg-rk/tree/enc# 参考的一位博主的说法 使用 ffmpeg-rochip 的好处 传统的使用硬件编解码的开发思路是&#xf…

9.0 C# 调用solidworks介绍1

一、C# 与 SolidWorks 联合开发概述 SolidWorks 提供了完整的 API(应用程序接口),允许开发者使用 C# 等编程语言进行二次开发,实现自动化设计、定制功能等。 主要技术要点包括: 1. API 结构:SolidWorks API 是基于 COM 的接口,包含数百个对象和数千个方法…

AD 多层线路及装配图PDF的输出

装配图的输出&#xff1a; 1.点开‘智能PDF’ 2. 设置显示顶层&#xff1a; 设置显示底层&#xff1a; 多层线路的输出 同样使用‘智能PDF’

SpringBoot + Shiro + JWT 实现认证与授权完整方案实现

SpringBoot Shiro JWT 实现认证与授权完整方案 下面博主将详细介绍如何使用 SpringBoot 整合 Shiro 和 JWT 实现安全的认证授权系统&#xff0c;包含核心代码实现和最佳实践。 一、技术栈组成 技术组件- 作用版本要求SpringBoot基础框架2.7.xApache Shiro认证和授权核心1.…

PCIe数据采集系统详解

PCIe数据采集系统详解 在上篇文章中&#xff0c;废了老大劲儿我们写出了PCIe数据采集系统&#xff1b;其中各个模块各司其职&#xff0c;相互配合。完成了从数据采集到高速存储到DDR3的全过程。今天我们呢就来详细讲解他们之间的关系&#xff1f;以及各个模块的关键点&#xff…

2025云智算技术白皮书

1. 云智算的演进背景 传统云计算面临三大挑战&#xff1a; 算力需求激增&#xff1a;AI大模型训练需十万卡级GPU集群&#xff0c;资源调度能力不足。网络性能瓶颈&#xff1a;TB级参数同步对低时延、高吞吐要求远超传统网络架构。服务形态单一&#xff1a;IaaS/PaaS无法覆盖A…

C语言编程中的时间处理

最简单的time 在C语言编程中&#xff0c;处理时间最简单的函数就是time了。它的原型为&#xff1a; #include <time.h> time_t time(time_t *_Nullable tloc);返回自从EPOCH&#xff0c;即1970年1月1日的零点零时零分&#xff0c;到当前的秒数。 输入参数可以是NULL。…

适应性神经树:当深度学习遇上决策树的“生长法则”

1st author: Ryutaro Tanno video: Video from London ML meetup paper: Adaptive Neural Trees ICML 2019 code: rtanno21609/AdaptiveNeuralTrees: Adaptive Neural Trees 背景 在机器学习领域&#xff0c;神经网络&#xff08;NNs&#xff09;凭借其强大的表示学习能力&…

InitVerse节点部署教程

项目介绍: InitVerse 是一个为新兴企业量身定制的自动化 Web3 SaaS 平台,只需单击几下即可快速开发和部署 DApp。在 INIChain 和 INICloud 的支持下,InitVerse 可以根据需求动态调整计算资源,实现高效的任务处理,同时提供更高的安全性、可用性和可扩展性。 系统要求: C…

阿里开源通义万相 Wan2.1-VACE,开启视频创作新时代

0.前言 阿里巴巴于2025年5月14日正式开源了其最新的AI视频生成与编辑模型——通义万相Wan2.1-VACE。这一模型是业界功能最全面的视频生成与编辑工具&#xff0c;能够同时支持多种视频生成和编辑任务&#xff0c;包括文生视频、图像参考视频生成、视频重绘、局部编辑、背景延展…

解决“VMware另一个程序已锁定文件的一部分,进程无法访问“

问题描述 打开VMware里的虚拟机时&#xff0c;弹出"另一个程序已锁定文件的一部分&#xff0c;进程无法访问"如图所示&#xff1a; 这是VM虚拟机的保护机制。虚拟机运行时&#xff0c;为防止数据被篡改&#xff0c;会将所运行的文件保护起来。当虚拟机崩溃或者强制…