Vue-ref属性

2023-11-01

ref属性是什么?

可以辅助开发者获取DOM元素或者组件的引用

什么意思?

我们可以使用jQuery的$来获取DOM元素,或者在原生中使用querySelector等获取到DOM元素并对其做出相应的操作

在Vue中,我们可以使用ref属性来获取DOM元素甚至组件引用来做出相应的操作

所以在Vue项目中,我们不会去使用jQuery,这也是jQuery慢慢淡出人们视线的主要原因之一

目录

ref引用DOM元素

ref定义

 ref引用组件实例

Son.vue:

App.vue:


ref引用DOM元素

首先我们需要在想要操作的元素标签中添加ref属性:

<div ref="xxxx"></div>

比如我们通过点击之后触发如下操作:

this.$refs.xxxx.style.color = 'red'

为什么要这样写呢?

我们通过例子来具体解析一下:

<div class="serach" @click="clickbox" ref="xxxx">
<script>
export default {
  methods:{
    clickbox(){
      console.log(this)
    }
  }
}
</script>

我们看到得到的当前组件实例,里面有一个$refs里面有一个DOM元素,而这个DOM元素不是别人,正是我们给到ref属性的那个元素:

this.$refs.xxxx.style.backgroundColor = 'red'

 我们会用了,但是ref哪来的?

ref定义

每一个Vue实例上都会包含一个refs对象,里面则存储着对应的DOM元素或者组件的引用,默认情况下组件的$refs指向的是一个空对象,就像这样:

<div class="serach" @click="clickbox">
<!--模板中现在是没有任何一个元素绑定ref属性--!>
console.log(this)


 ref引用组件实例

相同的,我们给组件标签添加ref属性

<Son ref="sonRef"></Son>

父组件就可以直接调用子组件的方法:

this.$refs.sonRef.子组件方法

假如我们想点击父组件元素让子组件元素背景颜色改变:

Son.vue:

<template>
  <div id="son">
     <button @click="bgcolor" ref="sonColor">点我变红</button>
  </div>
</template>

<script>

export default{
    methods:{
        bgcolor(){
            this.$refs.sonColor.style.backgroundColor = 'red'
        }
    }
}

</script>

App.vue:

<template>
  <div id="app">
    <p>我是App.vue文件</p>
    <Son ref="sonRef"></Son>
    <div class="serach" @click="clickbox" ref="xxxx">点我让子组件元素变红
    </div>
  </div>
</template>

<script>
import Son from '@/components/Son.vue'

export default {
  methods:{
    clickbox(){
      this.$refs.sonRef.bgcolor()
    }
  },
  components:{
    Son
  }
}
</script>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue-ref属性 的相关文章

  • 关闭选项卡时要求确认[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 当我在某些浏览器上关闭页面时 我希望出现一个消息框 并询问我是否真的要关闭页面 有两个按钮 如果我单击No那么这个标签就不会被关闭 我怎样
  • 如何重定向到 instagram://user?username={username}

    我的 html 页面上有这个链接 可以在特定用户上打开 Instagram 应用程序 a href Link to Instagram Profile a 我一直在寻找自动运行 url instagram user username USE
  • 使用 useReducers 调度函数发送多个操作?

    使用时是否可以通过调度函数发送多个动作useReducer挂钩反应 我尝试向它传递一组操作 但这会引发未处理的运行时异常 明确地说 通常会有一个初始状态对象和一个减速器 如下所示 const initialState message1 nu
  • 我想检查 $('#td1').text() === "x" 是否?

    我想检查innerHtml是否有X或O 所以我不能再次添加任何其他东西 但它不起作用 添加检查代码后它就停止了 我在这里尝试做一个简单的XO游戏来更熟悉javascript和jquery 我也不确定是否可以用 jQuery 做到这一点
  • 使用 jQuery/JS 打开时使
    标签的内容具有动画效果

    我只想要 HTML5 的内容details标记为 滑行 动画打开 而不是仅仅弹出打开 立即出现 这可以用 jQuery Javascript 实现吗 Fiddle http jsfiddle net 9h4Hq HTML
  • 检查 JavaScript 字符串是否为 URL

    JavaScript 有没有办法检查字符串是否是 URL 正则表达式被排除在外 因为 URL 很可能是这样写的stackoverflow 也就是说它可能没有 com www or http 如果你想检查一个字符串是否是有效的 HTTP UR
  • Node.js:如何在检索数据(块)时关闭响应/请求

    我正在用 node js 构建一个应用程序 它加载多个页面并分析内容 因为 node js 发送块 所以我可以分析这些块 如果一个块包含例如索引 nofollow 我想关闭该连接并继续其余部分 var host example com to
  • Vue:通过 CSS 选择组件的最简洁方法是什么?

    我有一个bar成分 它的使用方式如下
  • 除了更改标题之外,如何在 Firefox 中强制另存为对话框?

    有没有办法在 ff 中强制打开 www example com example pdf 的另存为对话框 我无法更改标题 如果您可以将文件以 Base64 格式输出到客户端 则可以使用 data uri 进行下载 location href
  • 为什么是 javascript:history.go(-1);无法在移动设备上工作?

    首先 一些背景 我有一个向用户呈现搜索页面 html 表单 的应用程序 填写标准并单击 搜索 按钮后 结果将显示在标准部分下方 在结果列表中 您可以通过单击将您带到新页面的链接来查看单个结果的详细信息 在详细信息页面中 我添加了一个 返回结
  • Grails 在 javascript 内的 GSP 站点中使用 grails var

    我有一个在 GSP 文件中的 javascript 代码中使用 grails 变量值的问题 例如 我有一个会话值session getAttribute selectedValue 我想在 javascript 代码部分使用这个值 我现在的
  • Angular 2+ 安全性;保护服务器上的延迟加载模块

    我有一个 Angular 2 应用程序 用户可以在其中输入个人数据 该数据在应用程序的另一部分进行分析 该部分仅适用于具有特定权限的人员 问题是我们不想让未经授权的人知道how我们正在分析这些数据 因此 如果他们能够在应用程序中查看模板 那
  • Javascript 数组到 VBScript

    我有一个使用 Javascript 构建的对象数组 我需要使用 VBScript 读取它 如下例所示 我找不到在 VbScript 代码中循环遍历数组的方法myArray object 这个例子是我的问题的简化 我无法更改页面的默认语言 这
  • Laravel 中只向登录用户显示按钮

    如果我以 John 身份登录 如何才能只显示 John 的红色按钮而不显示 Susan 的红色按钮 测试系统环境 Win10 Laravel5 4 Mysql5 7 19 table class table table responsive
  • 如何在类似控制台的环境中运行 JavaScript?

    我正在尝试遵循这里的示例 http eloquentjavascript net chapter2 html http eloquentjavascript net chapter2 html and print blah 在浏览器中运行时
  • Javascript转换时区问题

    我在转换当前时区的日期时间时遇到问题 我从服务器收到此日期字符串 格式为 2015 10 09T08 00 00 这是中部时间 但是当我使用 GMT 5 中的 new Date strDate 转换此日期时间时 它返回给我的信息如下 这是不
  • 简单的 Vue.js 计算属性说明

    我对 Vue js 并不陌生 但我会再次浏览文档 试图找出我第一次错过的任何内容 我在以下地方看到了这个声明使用计算属性的基本示例部分 https v2 vuejs org v2 guide computed html Basic Exam
  • 如何将vue组件插入到contenteditable div中

    我想用 vue 创建简单的所见即所得编辑器 我发现只有一个在 vue js 上创建的真正的所见即所得编辑器 这里是 https quasar dev vue components editor 但我没有发现有插入图像的能力 其他 vue w
  • 如何获取浏览器视口中当前显示的内容

    如何获取当前正在显示长文档的哪一部分的指示 例如 如果我的 html 包含 1 000 行 1 2 3 9991000 并且用户位于显示第 500 行的中间附近 那么我想得到 500 n501 n502 或类似的内容 显然 大多数场景都会比
  • 如何从图像输入中获取 xy 坐标?

    我有一个输入设置为图像类型

随机推荐

  • pycharm更换python解释器(anaconda和python官网)

    找到pycharm的文件按钮 2 点击设置按钮 3 点击项目 再点击python解释器就会出现这个窗口了 4 笔者这里是conda解释器 如果是python官网安装的就要点第一个 然后就是找到python解释器的路径了 一般我们要找的是这个
  • Python输出列表(List)不带中括号和引号

    正常python输出列表List时 会自动加上中括号和引号 例如 gt gt gt list1 a b c d gt gt gt list1 a b c d 解决方法一 使用join gt gt gt print join list1 a
  • 第四届蓝桥杯国赛C++B组 空白格式化

    标题 空白格式化 本次大赛采用了全自动机器测评系统 如果你的答案与标准答案相差了一个空格 很可能无法得分 所以要加倍谨慎 但也不必过于惊慌 因为在有些情况下 测评系统会把你的答案进行 空白格式化 其具体做法是 去掉所有首尾空白 中间的多个空
  • 数学建模基本算法模型

    全国大学生数学建模竞赛中常用的算法模型包括但不限于以下几种 线性回归模型 用于建立变量之间线性关系的模型 常用于预测和分析数据 逻辑回归模型 用于建立变量之间的非线性关系 常用于分类问题和概率预测 决策树模型 将数据集分解成更小的数据集 并
  • Excise_Thread2

    1 下列关于多线程中锁机制正确的是 A 关键字synchronized只能用于方法声明上 B 成员方法使用synchronized 那么当前方法的锁对象为当前方法所属的对象 C 静态方法使用synchronized 那么当前方法的锁对象为当
  • 【已解决】Nacos配置出现错误:Error creating bean with name‘memoryMonitor‘

    Nacos版本2 2 3 可先参考这个 https blog csdn net weixin 41195886 article details 127841630 解决建议都尝试一下 在user和password后边加个 0 老版本 未测试
  • O - Muddy roads

    Farmer John has a problem the dirt road from his farm to town has suffered in the recent rainstorms and now contains 1 l
  • centos7上搭建http服务器以及设置目录访问

    步骤 安装httpd服务 sudo yum install httpd Apache 的所有配置文件都位于 etc httpd conf 和 etc httpd conf d 网站的数据默认位于 var www 但如果你愿意 你可以改变它
  • HiveQL语法

    Hive SQL与标准SQL存在一些差异 但也是大同小异 HQL的基本语法为 中内容是可选的 中内容是必选的 表示内容二选一 全大写单词为关键字 建表语法 CREATE EXTERNAL TABLE IF NOT EXISTS table
  • 单片机实验(九)时钟0工作方式1中断法控制数码管0-59变化

    1 实验环境 win732位系统 keil2 proteus7 5sp3 2 实验目的 学习通过编程时钟0工作方式1中断法控制数码管0 59变化 3 实验连接图 4 实验代码 include
  • 用了Stream,代码丑爆了!姿势不对,别喷!

    程序员的成长之路 互联网 程序员 技术 资料共享 关注 阅读本文大概需要 20 分钟 来自 blog csdn net mu wind article details 109516995 Java8 的 Stream 流 加上 Lambda
  • C++11之显式转换操作符-explicit

    系列文章 C 11之正则表达式 regex match regex search regex replace C 11之线程库 Thread Mutex atomic lock guard 同步 C 11之智能指针 unique ptr s
  • 【python爬虫】14.Scrapy框架讲解

    文章目录 前言 Scrapy是什么 Scrapy的结构 Scrapy的工作原理 Scrapy的用法 明确目标与分析过程 代码实现 创建项目 代码实现 编辑爬虫 代码实现 定义数据 代码实操 设置 代码实操 运行 复习 前言 前两关 我们学习
  • ffmpeg分配编解码器的上下文的作用

    为什么分配编解码器的上下文 首先ffmpeg的解码器很多 但是当两个不同的流或者文件使用了同一个编解码器进行编解码 如果两个不同的流或者文件的数据都存在编解码器中 会造成编解码器的数据混乱 这时加入上下文保存两个流的数据 就不会造成编解码器
  • Keras-CNN、LSTM、文本分类、多分类、词向量

    一 本文目的 关于如何训练词向量 如何将文本数据组织成Keras的要求 本文不会讲述 本文的目的在于解决经典论文集中的CNN分类模型 如下图所示 从上图中可以看到 每次训练时 filter size的大小是变化的 包括3 4 5 而网上流传
  • 部署devstack

    OpenStack是一堆云计算平台组件 诸如存储 网络 镜像管理等 的合称 十分庞大且十分复杂 入门门槛不低 即便是为开发目的而进行的OpenStack部署也会让你折腾许久 甚至始终无法搭建成功 为此OpenStack为入门者和开发者推出了
  • ER图基本知识

    绘图软件 我用的是在线网站ProcessOn 什么是ER图 ER图就是实体关系图 矩形表示实体 椭圆形表示属性 菱形表示实体间的联系 实体 矩形 内写实体名 属性 椭圆形 直接与实体相连 联系 菱形 写明两个实体之间是如何关联的 同时在直线
  • OSPF——5种报文(图解)

    目录 Ospf头部 以下五个报文都会携带OSPF头部 Hello包 建立并维护邻居关系 DD报文 描述LSDB数据库的简要信息 LSR报文 请求LSA LSU报文 发送完整的LSA信息 LSAck报文 对LSU中LSA的确认 Ospf头部
  • Visual Studio 2019 的快捷键和视图布局使用

    文章目录 常见快捷键 视图布局 常见快捷键 Ctrl Shift 将选中的多行注释 或光标所在行 的单行注释 取消注释 这是此快捷键 Ctrl Shift Enter 重启一行 是从当前行的下面 重启一行 Ctrl Enter 重启一行 是
  • Vue-ref属性

    ref属性是什么 可以辅助开发者获取DOM元素或者组件的引用 什么意思 我们可以使用jQuery的 来获取DOM元素 或者在原生中使用querySelector等获取到DOM元素并对其做出相应的操作 在Vue中 我们可以使用ref属性来获取