vue ref介绍

简要介绍Vue中ref以及相关的工具函数 官方解释:接受一个内部值,返回一个响应式的、可更改的 ref 对象,此对象只有一个指向其内部值的属性。建议可以多看看文档Vue.js - 渐进式 JavaScript 框架 | Vue.js个人理解:使用ref声明的变量,对起进行操作之后值都会被追踪,在用到该数据的地方也会发生相应的变化并且需要使用.value来对数据进行操作,该Api的底层还是使用了Proxy代理来实现,使用get与set方法来重新定义并获取值(但是还不是很明白) 阅读详情
AI摘要

本文详细解析Vue.js中ref的三种用法,包括如何通过ref获取DOM元素和组件实例,以及如何利用v-for和ref获取一组数组或DOM节点。同时,深入探讨$attrs在父子组件间未定义prop值的传递作用。

基本用法

ref 有三种用法:

1、ref 加在普通的元素上,用this.ref.name 获取到的是dom元素

2、ref 加在子组件上,用this.ref.name 获取到的是组件实例,可以使用组件的所有方法。

3、如何利用 v-for 和 ref 获取一组数组或者dom 节点
  在这里插入图片描述
  
  第1,2种情况
  this.$refs 获取了所有设置ref属性的元素(如有重名那么会被覆盖)
  如果是普通的元素那返回的是一个普通的dom,如果ref放在vue组件里,那么返回的是一个vue对象,这个对象包含了这个组件的各种信息
  
  第3种情况
  在这里插入图片描述
  在这里插入图片描述

如图所示这样使用
this.$refs.g1 获取得是vue组件对象的集合,就不覆盖了

$attrs

父子之间值传递,我们一般用的是在属性里设置,采用:prop="prop"的格式
在子级的props定义接受,然后可以直接使用,
若props里没有定义,那么可以使用this.$attrs里获取没有定义的值,

如下图
在这里插入图片描述
图中定义了3个属性(v-model也是个特殊的属性,在props中可以用 value来接收)
在这里插入图片描述
那$attrs的值是什么呢?
在这里插入图片描述
是除了props里已经定义接收了的传值, 就剩下了grand-id这个属性

如果还有孙子级的组件, 我们还可以用

v-bind="$attrs"

这种方式再次传递到孙子级的页面,孙子级仍然可以使用props来获取。如果不使用props,那么还可以依旧使用this.$attrs来获取,
这个相当于搭了个桥,
在这里插入图片描述

如上图所示,this.attrs里面为grandId:1,我们使用v−bind="this.attrs里面为{grandId:1}, 我们使用v-bind="this.attrs里面为grandId:1,我们使用v−bind="this.attrs" 同等于 v-bind:grandId=“1”.这是只有一个属性值,所以差别不大,如果有多个属性值,那就不需要我们写了。直接借你一用,把各个需要传递给子孙级的数据,直接传到了目的地

语法糖的问题

在看同事代码的时候,发现在改变子级元素的值的时候,直接去改变了父级的值。没有用vuex,没有用emit。

其实还是用了emit,只是一些语法糖

v-model
在这里插入图片描述
在这里插入图片描述
如上面所展示代码
用v-model绑定了元素,在子级里面props接收到了value的值。
用该值初始化了inputValue,并监听emit了一个input事件。
在第一幅图里 v-model里绑定的值,也跟着改变了。

相当于
在这里插入图片描述
还是相当于在父级上绑上了一个事件,只是为了简单写法,省略一些东西

.sync
普通属性呢?其实也有一种简单的写法。

<template>
  <div class="dashboard-container">
    {{ object }}
    <text1 v-model="object.v" :changep.sync="object.p" />
  </div>
</template>

<script>

import text1 from './text'

export default {
  components: {
    text1
  },
  data() {
    return {
      object: {
        v: 1,
        p: 2
      }

    }
  }
}
</script>


<!--
 * @Author: hanker
 * @LastEditors: hanker
 * @Description:
-->
<template>
  <div class="">
    <el-input v-model="inputValue" />
    <el-button @click="clickHandle">点击改变p</el-button>
  </div>
</template>

<script>
// import x from ''
export default {
  components: {

  },
  props: {

  },
  data() {
    return {
      inputValue: this.value
    }
  },
  computed: {

  },
  watch: {
    inputValue(newValue) {
      this.$emit('input', newValue)
    }
  },
  mounted() {

  },
  methods: {
    clickHandle() {
      const p = '改变了对应的p'
      this.$emit('update:changep', p)
    }
  }
}
</script>

<style lang='scss' scoped>
//@import url()

</style>

在看一些vue开源的后台管理系统的时候,常常看到这些快捷写法,大家不要慌。百度一下,完事大吉

把时间当成数据:SAP ABAP 里的 DATS/TIMS 与 DATN/TIMN,怎么选才不踩坑 SAP项目中日期时间字段的陷阱与优化 日期时间字段(DATS/TIMS)在SAP项目中看似简单却常引发事故,主要问题包括: 非法日期(如20201331)入库后,在月结、对账时爆发异常 空值被处理为00000000导致排序错误 ABAP提供两种处理方案: 经典类型DATS/TIMS:存储为字符格式,校验宽松易存脏数据 HANA原生类型DATN/TIMN:数据库级校验,写入即拦截非法值 优化建议: 在接口层和入库前进行严格校验 新项目优先使用DATN/TIMN类型 对遗留数据使用DATS_IS_VALID等函 阅读详情

相关推荐

AI编码的“黑箱危机”终结者:OpenSpec如何让你的代码从“猜谜”变“契约”?

OpenSpec的真正价值,在于它将AI编码从"经验驱动"推向"契约驱动"——当人类与AI对"目标是什么"达成显式共识,编码就从"猜谜游戏"变成了"工程实现"。这种转变不仅提升效率,更重塑了开发者与AI的关系:AI从"替代者"回归"协作者",而人类则聚焦于"定义正确的事"而非"正确地做事"。对于开发者,OpenSpec提供了驾驭AI的缰绳;对于团队,它构建了协作的基石;对于行业,它预示着AI编码工业化的开端。

haolove527的专栏 1348

Vue(ref和$refs属性介绍与使用)

在Vue中一般很少会用到直接操作DOM,但不可避免有时候需要用到,这时我们可以通过ref和$refs这两个来实现,本文我们就来详细的介绍下这个内容除了自定义属性外,Vue实例还暴露一些有用的实例属性和方法,他们都有前缀$,以便和用户定义的属性和方法分开。

kalvin_y_liu的博客 4万+

07. 基础实战篇 - STP的基本配置

STP(生成数协议)是一个用于在局域网中消除环路的协议,他的标准是IEEE802.1d。STP通过强制使部分冗余链路处于阻塞状态,其它链路处于转发状态,将环形网络结构修剪成无环路的树形网络结构。可实现消除环路,当处于转发状态的链路不可用时,STP重新配置网络,并激活合适的备用链路状态,恢复网络连通性。

weixin_39868387的博客 7225

vue的ref

Vue 3中的ref是一个用于创建响应式引用的API,它是Vue 3引入的Composition API的一部分。ref的作用是包装一个基本类型数据或一个对象,使得该数据或对象的改变能触发视图的更新。需要在页面变化的数据做成响应式的。

weixin_68376171的博客 1万+

ESP32水墨屏日历实战:低功耗自动更新与HTTPS数据解析

本文详细介绍了ESP32水墨屏日历项目的开发实践,重点讲解了低功耗自动更新与HTTPS数据解析的实现方法。通过ESP32的自动休眠功能和水墨屏的零功耗特性,结合HTTPS请求安全获取网络数据,实现了高效节能的桌面日历应用。项目代码开源,适合物联网开发者参考。

xx56789的博客 777

Gartner《构建可扩展数据产品建设框架》心得

数据产品化:从概念到落地的实践指南 当前企业正从传统数据需求模式转向数据产品化新范式。本文系统阐述了数据产品的核心价值、定义分类和实施框架,指出成功关键是将数据包装为可复用、可扩展的产品。Gartner框架强调产品思维,提出4阶段12步实施路径,涵盖设计、工程、发布和监控全流程。文章特别提醒要避免7大常见误区,如简单重命名报表、忽视元数据治理等,建议采取MVP策略,90天内完成从价值验证到产品落地的闭环。实施中需平衡技术选型与业务需求,建立跨职能团队,并通过AARRR模型持续追踪产品价值。

2501_91410404的博客 1002

vue中ref的使用

ref是vue中DOM元素和组件标签中的属性

qq_52372296的博客 7万+

STM32F103单片机驱动TM1637数码管显示模块

最近项目中需要用到数码管显示,于是买了一个TM1637芯片驱动的四位数码显示模块,现将调试过程记录一下,方便以后参考。 使用的单片机是STM32F103C8T6最小系统 使用的数码管模块是TM1637四位数码管显示模块 实际运行效果 下面先看一下TM1637和数码管连接的具体线路图 实际使用的模块没有带按键,只用了4个数码管,模块和单片机连接只需要4根线VCC、GND、CLK、DIO。芯片和单片机通信使用的是I2C总线,下面就来说一下如何...

HXYDJ的博客 1万+

Vue3超详细的ref()用法,看这一篇就够了

ref()接受一个内部值,返回一个响应式的可更改的ref 对象,此对象只有一个指向其内部值的属性.value。ref() 将传入参数的值包装为一个带 .value 属性的 ref 对象。

EchoLiner的博客 14万+

置顶必读(2) |《滚雪球学数学建模》专栏目录 & 历年国赛/美赛真题库 & 真题解析(持续更新中)

本专栏《滚雪球学数学建模》采用“从零开始、逐步滚雪球”的学习路径,把数学建模的基础理论、方法工具与大量实战真题(尤其是国赛题,涵盖2025-1992所有真题)有机融合,形成一套系统化训练路线。非常适合零基础入门、希望提升模型与工程化能力的本科/研究生,以及备战全国大学生数学建模竞赛(国赛/省赛)的同学。加油,我们一起把建模能力打造成可迁移的核心竞争力!

**My Coding Family** 26万+

超分辨率重建:ESPCN与SRGAN技术对比

超分辨率重建:ESPCN与SRGAN技术对比​ 人工智能,计算机视觉,大模型,AI,超分辨率重建是一种通过技术手段,将低分辨率图像转换为高分辨率图像的过程。它的目的是恢复低分辨率图像中丢失的细节信息,使图像具有更高的清晰度和视觉质量。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 7万+

Vue中ref和$refs的介绍及使用

在JavaScript中需要通过document.querySelector("#demo")来获取dom节点,然后再获取这个节点的值。在Vue中,我们不用获取dom节点,元素绑定ref之后,直接通过this.$refs即可调用,这样可以减少获取dom节点的消耗。 ref介绍 ref被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的$refs对象上。如果在普通的 D...

越努力,越幸运! 5万+

在 LangGraph 中集成 Skills 增强智能体能力

LangGraph 的核心是通过**状态机 + 节点(Node) + 工具(Tool)**来编排智能体流程,你可以把 Skills 理解为“封装好的工具或可复用的任务流”,下面是一套可落地的集成方案。

lpfasd123的博客 1179

vue中ref和$refs的介绍及使用

文章目录Vue中ref和$refs的介绍及使用ref介绍this.$refs介绍实例(通过ref特性调用子组件的方法)【1】子组件code:【2】父组件code: Vue中ref和$refs的介绍及使用 在JavaScript中需要通过document.querySelector("#demo")来获取dom节点,然后再获取这个节点的值。在Vue中,我们不用获取dom节点,元素绑定ref之后,直接通过this.$refs即可调用,这样可以减少获取dom节点的消耗。 ref介绍 ref被用来给元素或子组件注

fmk1023的博客 446

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Vue中ref和$refs的介绍与使用

之前没怎么注意 ref 的使用。后来一次结合 for 循环使用。才发现 ref 的使用细节满满。于是就总结了一下。 ref作用 用来给元素或者子组件注册引用信息。引用信息将会注册给父组件的$refs对象上。 1、如果给普通的dom元素使用,引用指向的是dom元素。 2、如果是给子组件使用,引用指向的是子组件的实例。 注意: 1、$refs只有在组件渲染完成后才填充,在初始渲染的时候不能访问它们,并且它是非响应式的,因此不能用它在模板中做数据绑定。 2、微信小程序中给dom元素使用ref无效。得到的是 空对象

chenzimin_blog 3679

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

vue中,ref属性使用详情介绍

在以下代码中,我们使用v-for指令循环渲染一个input元素数组,并为每个元素添加一个ref,然后点击按钮时,移除第二个input元素的ref。在父组件中将子组件引入,并在子组件标签上添加ref属性,然后就可以通过this.$refs.myChild获取子组件的引用,在父组件内部调用子组件的sayHello方法。在Vue中,ref是一个特殊的属性,用于获取组件实例或DOM元素的引用。在Vue组件中使用ref可以获取子组件的引用,从而可以在父组件内部调用子组件的方法或访问其数据。

zb865938593的博客 3606

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

vue组件介绍之ref

vue组件之ref,父组件通过$refs获取子组件暴露出来的属性或方法

qq_43628158的博客 676

vue 中的ref属性的介绍

使用vue开发时经常会用到ref属性,ref属性有什么作用呢? 用法①⭐:有时候我们想在父组件中调用子组件的方法或属性,这个时候该怎么做呢?可以通过为子组件设置ref,然后通过this.$refs.refName(refName为子组件的ref值)获取到子组件,然后就可以随意调用子组件的方法和属性了。 用法②⭐:有时候我们想操作子组件或HTML标签的DOM,在vue中我们几乎不使用class或id...

xiaocuizao的博客 3586

vue3 中的ref、reactive的介绍

vue3 中的ref、reactive的介绍

pig_ning的博客 647

Vue中ref和$refs的介绍和使用方法示例

前言:在JavaScript中需要通过document.querySelector('#demo')来获取dom节点,然后,再获取这个节点的值。在vue中,我们不用获取dom节点,元素绑定ref之后,直接通过this.$refs即可调用,这样可以减少获取dom节点的消耗。 一、介绍 ref有三种用法: ①ref加在普通的元素上,用this.ref.name获取到的是dom元素; ②ref加在子组件上,用this.ref.name获取到的是组件实例,可以使用组...

qq_26780317的博客 1万+

vue3_03_简单介绍标签的ref属性

ref的本质就是打标记的,就是为了规避id的这种错误的东西的;可以加载在普通的html标签身上,拿到的是dom元素的;也是可以加载在组件标签当中的,拿到的就是实例对象的;

浪漫韫秋 1192

【vue】ref和$refs的介绍和使用

在JavaScript中需要通过document.querySelector("#demo")来获取dom节点,然后再获取这个节点的值。在Vue中,我们不用获取dom节点,元素绑定ref之后,直接通过this.$refs即可调用,这样可以减少获取dom节点的消耗。 ref介绍 ref被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 $refs对象上。如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向该子组件实例 通俗的讲,ref特性就是为元素或子组件.

丹 365
上一篇: vue格式化,用tab写4个空格的问题
下一篇: js 加减乘除精度问题
han_hanker
博客等级 码龄13年 35粉丝 106原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值