【Vue】Vue3.0(十三)中标签属性ref(加在普通标签上、加在组件标签上)、局部样式
上篇文章: 【Vue】Vue3.0 (十二)、watchEffect 和watch的区别及使用
🏡作者主页:点击!
🤖Vue专栏:点击!
⏰️创作时间:2024年10月18日20点56分
文章目录
- 基本用法
- 访问DOM元素
- 访问子组件实例
- 注意事项
- 举个栗子~
- 补充知识:**局部样式:**
标签属性ref(加在普通标签上、加在组件标签上)有什么区别
在Vue 3.0中,ref是一个用于创建响应式数据的函数,它可以用来在组件中引用DOM元素或子组件实例。以下是关于ref的详细介绍:
作用:用于注册模板引用。
用在普通
DOM标签上,获取的是DOM节点。用在组件标签上,获取的是组件实例对象。
基本用法
- 在Vue 3.0中,使用
ref函数来创建一个响应式的引用。例如:
<template><div ref="myDiv">这是一个 div 元素</div>
</template><script setup>
import { ref } from 'vue';const myDiv = ref();
</script>
在上述代码中,使用ref函数创建了一个名为myDiv的响应式引用,并将其初始值设置为null。在模板中,通过ref指令将myDiv引用与div元素绑定。这样,在组件挂载后,myDiv的值将指向该div元素的实例。
访问DOM元素
- 可以通过
ref引用访问DOM元素的属性和方法。例如:
<template><div ref="myDiv">这是一个 div 元素</div><button @click="changeText">改变文本</button>
</template><script setup>
import { ref } from 'vue';const myDiv = ref();const changeText = () => {myDiv.value.textContent = '这是改变后的文本';
};
</script>
在上述代码中,定义了一个名为changeText的方法,在该方法中,通过myDiv.value访问div元素的textContent属性,并将其值修改为'这是改变后的文本'。当点击按钮时,div元素的文本内容将被改变。
访问子组件实例
ref还可以用于访问子组件实例,以便在父组件中调用子组件的方法或访问子组件的数据。例如:
// 子组件
<template><div><p>{{ message }}</p></div>
</template><script setup>
import { ref } from 'vue';const message = ref('这是子组件的消息');const changeMessage = () => {message.value = '这是改变后的消息';
};defineExpose({changeMessage,
});
</script>// 父组件
<template><div><ChildComponent ref="child" /><button @click="callChildMethod">调用子组件方法</button></div>
</template><script setup>
import { ref } from 'vue';
import ChildComponent from './ChildComponent.vue';const child = ref(null);const callChildMethod = () => {child.value.changeMessage();
};
</script>
在上述代码中,在子组件中定义了一个名为message的响应式数据,并定义了一个名为changeMessage的方法,用于改变message的值。通过defineExpose函数将changeMessage方法暴露给父组件。在父组件中,使用ref引用获取子组件实例,并在callChildMethod方法中调用子组件的changeMessage方法。
注意事项
ref的值是一个响应式对象,需要通过.value来访问其实际的值。- 在模板中使用
ref时,需要确保ref引用的元素或组件已经挂载,否则ref的值将为null。 ref引用在组件的整个生命周期内都是有效的,可以在组件的任何方法中使用。- 当使用
ref引用一个组件时,需要确保该组件已经被正确注册。
ref是Vue 3.0中一个非常有用的特性,它使得在组件中访问DOM元素和子组件实例变得更加方便和灵活。通过ref,可以轻松地实现对DOM元素的操作和对子组件的交互,从而增强了组件的复用性和可维护性。
举个栗子~

App.vue:
<template><h4 class="person" ref="title2">app的H3标签</h4><button @click="showTel">点我输出app的h3</button><button @click="showRen">点我输出Person标签</button><Person ref="ren"/></template><script lang="ts" setup name="App"> //当前根组件的组件名
import Person from './components/Person.vue'
import {ref} from 'vue'let title2 =ref();
let ren =ref();
function showTel(){
console.log(title2.value);
}function showRen(){console.log(ren.value);console.log(ren.value.b);
}</script><style >
.app {
background-color: #ddd;
box-shadow: 0 0 10px;
border-radius: 10px;
padding: 20px;
}
</style>
Person.vue
<template><div class="person"><h4 ref="title2">北京</h4><h4>尚硅谷</h4><button @click="showH3">点我展示H3标签</button></div>
</template><script lang="ts" setup name="Person">import { ref, watch,defineExpose } from 'vue'
//数据
let title2 =ref();
let a =ref(0);
let b =ref(1);
let c =ref(2);function showH3(){console.log(title2.value);
}//定义要让父对象能看到的东西 ,注意这个里面要传入一个对象,对象中可以放键值对,这些键值对就是可以让父亲看到的属性
defineExpose({a:a,b:b,c:c});</script><style scoped>
.person {background-color: skyblue;box-shadow: 0 0 10px;border-radius: 10px;padding: 20px;
}li {font: 1em sans-serif;
}
</style>
结果1:
验证1:对于ref标记不会像id属性那样,多个组件之间会互相影响;ref标记及时一样,在一起使用的组件中,那也不会影响,是相互隔离的;
我点击了分别点击了app 和Person中的按钮,分别进行了输出,没有影响

验证2:app中能访问Person中暴露的方法和属性,这样在实际开发中,可以父组件去使用子组件的属性或者方法;

补充知识:局部样式:
一般写样式的时候,会加上scoped属性,这样就保证了这个选择器写的样式只在当前vue中生效,避免了影响其他的组件中同样选择器样式的展示

相关文章:
【Vue】Vue3.0(十三)中标签属性ref(加在普通标签上、加在组件标签上)、局部样式
上篇文章: 【Vue】Vue3.0 (十二)、watchEffect 和watch的区别及使用 🏡作者主页:点击! 🤖Vue专栏:点击! ⏰️创作时间:2024年10月18日20点56分 文章目录 基本…...
Linux系统基础-文件系统
个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 Linux系统基础-文件系统 收录于专栏[Linux学习] 本专栏旨在分享学习Linux的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 1. 回顾C语言…...
机器学习和深度学习常用的工具库
一、机器学习常用库 1. Scikit-learn 简介:一个基于Python的机器学习库,专注于经典的机器学习算法。特点: 提供了多种分类、回归、聚类和降维算法。具有统一的API,便于使用。集成了数据预处理、模型选择和评估等功能。 应用&…...
【unity小技巧】Unity6 LTS版本安装和一些修改和新功能使用介绍
文章目录 前言安装新功能变化1、官方推荐使用inputsystem进行输入控制2、修复了InputSystem命名错误导致listen被遮挡的bug3、自带去除unity启动画面logo功能4、unity官方的behavior行为树插件5、linearVelocity代替过时的velocity方法待续 完结 前言 2024/10/17其实unity就已…...
5种边界填充
目录 边界填充需要知道的两个东西什么算边界边界的范围是多少举例 复制填充反射法反射101法外包装法数值填充法原图代码最终效果 边界填充需要知道的两个东西 什么算边界 顾名思义:就是图片的最外边 边界的范围是多少 根据你自己的需要而设置 举例 这里我选择…...
鸿蒙网络编程系列7-TLS安全数据传输单向认证示例
1.TLS简介 TLS(Transport Layer Security)协议的前身是SSL(Secure Socket Layer)安全套接层协议,由Netscape公司于1994年提出,是一套网络通信安全协议。IETF(The Internet Engineering Task Fo…...
LangGraph 源码分析 | BaseTool 模板类
文章目录 BaseTool 源码分析核心属性以 TavilySearchResults(BaseTool) 为例namedescriptionargs_schemaresponse_format查询选项属性 需要子类实现的抽象方法以 TavilySearchResults(BaseTool) 为例 核心方法arun():run()的异步执行版本invoke()和ainvoke() BaseTo…...
vulnhub靶场之JOY
一.环境搭建 1.靶场描述 Does penetration testing spark joy? If it does, this machine is for you. This machine is full of services, full of fun, but how many ways are there to align the stars? Perhaps, just like the child in all of us, we may find joy in …...
intel和AMD突然联姻,这操作给我看傻了
要说现在的显卡一哥,那肯定非 NVIDIA 莫属,不仅仅是在 AI 领域是赚的盆满钵满,更是在游戏显卡领域把红蓝两家打的节节败退。 在 6000 系列尚能与之一战的 AMD 也认清了现实,在最近宣布了下一代 8000 系列显卡放弃高端显卡战争&…...
yolo_face_pose-DataBall 人脸关键点数据集 >> DataBall
数据集下载地址:ultralyticsyolo训练自定义人脸关键点训练和验证数据集资源-CSDN文库 数据集定义: ultralytics yolo 训练自定义人脸关键点训练和验证数据集 数据集格式:yolo 训练集数量:3295 验证集数量:120 类别&a…...
Unity 山水树木
本章节内容 1. Unity对3D游戏物体的简单操作; 2. 构建山水树木的场景 1. Unity 简易操作 1.1 新建3D游戏场景 1. 打开Unity Hub,点击 New Project (新建项目)按键,选择第二项 3D(Built-In Render Pipeline)…...
Redis 性能优化选择:Pika 的配置与使用详解
引言 在我们日常开发中 redis是我们开发业务场景中不可缺少的部分。Redis 凭借其内存存储和快速响应的特点,广泛应用于缓存、消息队列等各种业务场景。然而,随着数据量的不断增长,单节点的 Redis 因为内存限制和并发能力的局限,逐…...
【某农业大学计算机网络实验报告】实验三 IP数据报发送和转发流程
实验目的: (1)掌握基本的网络配置方法。 (2)观察 IP 数据报的发送和转发流程,掌握 IP 转发分组的原理。 实验器材: 一台Windows操作系统的PC机。 实验准备: 1.配置…...
Android13 添加运行时权限
在一些场景下,需要给app 添加运行时权限,这样就不需要在使用的时候再去点击授权。 直接上代码: --- a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.javab/services/core/java/com/android/server/pm…...
官方操刀占用仅6G,Win 11 LTSC详细安装、优化教程来了
前段时间微软发布 Win 11 年度重磅更新 24H2,顺便也带来了备受期待的 Win 11 2024 官方精简 LTSC(老坛酸菜)版。 Win 11 重磅更新发布,老坛酸菜版成了配角! 简单来说,Win 11 LTSC 是微软针对企业用户推出…...
【论文精读】RELIEF: Reinforcement Learning Empowered Graph Feature Prompt Tuning
RELIEF: Reinforcement Learning Empowered Graph Feature Prompt Tuning 前言AbstractMotivationSolutionRELIEFIncorporating Feature Prompts as MDPAction SpaceState TransitionReward Function Policy Network ArchitectureDiscrete ActorContinuous ActorCritic Overall…...
2023-06 GESP C++三级试卷
2023-06 GESP C三级试卷 (满分:100 分 考试时间:90 分钟) PDF试卷及答案回复:GESPC2023063 一、单选题(每题 2 分,共 30 分) 1 高级语言编写的程序需要经过以下( )操…...
Maven--简略
简介 Apache旗下的一款开源项目,用来进行项目构建,帮助开发者管理项目中的jar及jar包之间的依赖,还拥有项目编译、测试、打包的功能。 管理方式 统一建立一个jar仓库,把jar上传至统一的仓库,使用时,配置…...
leetcode 刷题day44动态规划Part13( 647. 回文子串、516.最长回文子序列)
647. 回文子串 动规五部曲: 1、确定dp数组(dp table)以及下标的含义 按照之前做题的惯性,定义dp数组的时候很自然就会想题目求什么,就如何定义dp数组。但是对于本题来说,这样定义很难得到递推关系&#x…...
华为OD机试真题---关联子串
华为OD机试中的“关联子串”题目是一个考察字符串处理和算法理解的经典问题。以下是对该题目的详细解析: 一、题目描述 给定两个字符串str1 和 str2,如果字符串 str1 中的字符, 经过排列组合后的字符串中只要有一个是 str2 的子串ÿ…...
Youtu-VL-4B-Instruct惊艳效果展示:同一张图连续追问‘文字内容→主色调→人物数量→情绪判断’
Youtu-VL-4B-Instruct惊艳效果展示:同一张图连续追问‘文字内容→主色调→人物数量→情绪判断’ 你有没有想过,如果给AI一张图片,它能像人一样“看懂”并回答你一连串的问题吗?比如,先问它图片里写了什么字࿰…...
别再只做静态模型了!用Unity 3D + WebGL打造你的第一个可交互数字孪生看板
从静态到动态:用Unity 3D WebGL构建工业级数字孪生看板实战指南 当传统工业监控系统还停留在二维图表和静态数据展示时,数字孪生技术正在重新定义设备管理的交互方式。想象一下:在浏览器中旋转查看工厂设备的实时三维模型,点击某…...
掌握Agentic RAG:大模型检索进阶实践,小白也能轻松收藏学习!
掌握Agentic RAG:大模型检索进阶实践,小白也能轻松收藏学习! 本文深入解析了Agentic RAG架构如何通过智能代理能力、动态任务规划和多步骤推理,超越传统RAG的被动模式,实现复杂问题的自主拆解与精准回答。以DeepSearch…...
新手福音,用快马平台可视化学习apifox接口调用与测试
作为一个刚接触API开发的新手,第一次看到各种接口文档时完全摸不着头脑。直到发现了Apifox这个工具,配合InsCode(快马)平台的智能生成功能,终于找到了最适合新手的可视化学习路径。下面分享我的学习心得: 为什么选择Apifox作为入门…...
每日一书⑩ | AI 未来:未来不属于 AI,属于会用 AI 的人
“本文来自「乐想屋」公众号,系列更新[每日一书],每次5分钟,帮你把书读薄,把知识用活”01 开篇:AI 不是科幻,是正在发生的现实你可能觉得 AI 还很遥远,但它已经渗透进生活的每个角落:…...
《AI应用实战课》第八课:大语言模型与垂直行业问答系统——从通识智能到产业落地的最后一公里
引言:站在巨变的时代路口 欢迎来到《AI 应用实战课》的最终章。如果说前七节课我们是在构建AI的“大脑”与“感官”——从数据的感知、特征的提取,到逻辑的推理、模式的识别——那么这第八节课,我们将为这个大脑注入最核心的“灵魂”…...
拯救者工具箱终极指南:3大场景释放笔记本隐藏性能
拯救者工具箱终极指南:3大场景释放笔记本隐藏性能 【免费下载链接】LenovoLegionToolkit Lightweight Lenovo Vantage and Hotkeys replacement for Lenovo Legion laptops. 项目地址: https://gitcode.com/gh_mirrors/le/LenovoLegionToolkit Lenovo Legion…...
DeEAR保姆级部署教程:适配A10/A100/V100 GPU的DeEAR镜像环境参数详解
DeEAR保姆级部署教程:适配A10/A100/V100 GPU的DeEAR镜像环境参数详解 1. 项目介绍 DeEAR(Deep Emotional Expressiveness Recognition)是一个基于wav2vec2的深度语音情感表达分析系统。它能从语音中识别三个关键情感维度:唤醒度…...
s2-proWeb工具深度体验:响应速度、试听流畅度与下载稳定性评测
s2-proWeb工具深度体验:响应速度、试听流畅度与下载稳定性评测 1. 产品概览 s2-pro是Fish Audio开源的专业级语音合成模型镜像,作为一款专注于文本转语音(TTS)的工具,它提供了两种核心功能模式: 基础语音合成:直接输…...
lite-avatar形象库惊艳效果展示:高保真表情+精准唇动同步的对话级数字人呈现
lite-avatar形象库惊艳效果展示:高保真表情精准唇动同步的对话级数字人呈现 桦漫AIGC集成开发 | 微信: henryhan1117 1. 引言:数字人交互的新标杆 想象一下,一个数字人不仅能和你流畅对话,还能做出逼真的表情变化,嘴唇…...
