当前位置: 首页 > news >正文

vue 中 ref 详解

一、定义与基本用法

1. 定义

在 Vue.js 中,`ref`是一个用于在组件中获取 DOM 元素或者子组件实例引用的属性。它提供了一种直接访问元素或组件的方式,使得我们可以在 JavaScript 代码中对它们进行操作。

2. 基本使用

在模板中,可以通过给元素或者组件添加`ref`属性来创建引用。

<template><div ref="myDiv">这是一个div元素</div></template>

二、在选项式 API 中的使用

1. 访问 DOM 元素

在选项式 API 中,`ref`属性可以用于获取 DOM 元素的引用。

export default {mounted() {this.$refs.input.focus();},template: '<input ref="input" type="text">',};

2. 访问子组件实例

当`ref`用于子组件时,可以获取子组件的实例,从而访问子组件的属性和方法。

// 子组件export default {methods: {getChildData() {return "子组件数据";},},};

在父组件中,可以通过`ref`获取子组件实例并调用子组件的方法

export default {mounted() {const childComponent = this.$refs.child;const childData = childComponent.getChildData();console.log(childData);},template: '<ChildComponent ref="child" />',components: {ChildComponent,},};

三、在组合式 API 中的使用

1. 创建和访问引用

在组合式 API 中,通常使用`ref`函数(从`vue`模块中导入)来创建引用。

import { ref, onMounted } from "vue";export default {setup() {const myDiv = ref(null);onMounted(() => {console.log(myDiv.value);});return {myDiv,};},template: '<div ref="myDiv">这是一个div元素</div>',};

2. 与响应式数据的结合使用

`ref`创建的引用可以与其他响应式数据一起使用,用于构建复杂的交互逻辑。

import { ref, watch } from "vue";export default {setup() {const buttonRef = ref(null);const clickCount = ref(0);watch(() => buttonRef.value,() => {if (buttonRef.value) {clickCount.value++;}});return {buttonRef,clickCount,};},template:'<button ref="buttonRef" @click="clickCount++">点击我</button> <p>点击次数: {clickCount}</p>',};

http://www.lryc.cn/news/511664.html

相关文章:

  • 探索开源项目 kernel:技术的基石与无限可能
  • C 实现植物大战僵尸(二)
  • Vivado - TCL 命令(DPU脚本、v++命令、impl策略)
  • 【JDBC】数据库连接的艺术:深入解析数据库连接池、Apache-DBUtils与BasicDAO
  • hadoop-common的下载位置分享
  • 【机器学习】SVM支持向量机(一)
  • Spring Boot介绍、入门案例、环境准备、POM文件解读
  • 基于Spring Boot + Vue3实现的在线商品竞拍管理系统源码+文档
  • LeetCode--排序算法(堆排序、归并排序、快速排序)
  • 华诺星空 Java 开发工程师笔试题 - 解析
  • QT:一个TCP客户端自动连接的测试模型
  • 关于启动vue项目,出现:Error [ERR_MODULE_NOT_FOUND]: Cannot find module ‘xxx‘此类错误
  • 电路元件与电路基本定理
  • 指针之矢:C 语言内存幽境的精准飞梭
  • uniapp下载打开实现方案,支持安卓ios和h5,下载文件到指定目录,安卓文件管理内可查看到
  • 免费干净!付费软件的平替款!
  • 软路由系统 iStoreOS 中部署 Minecraft 服务器
  • 第 29 章 - ES 源码篇 - 网络 IO 模型及其实现概述
  • 细说STM32F407单片机IIC总线基础知识
  • 从头开始学MyBatis—04缓存、逆向工程、分页插件
  • Artec Space Spider助力剑桥研究团队解码古代社会合作【沪敖3D】
  • 《探索PyTorch计算机视觉:原理、应用与实践》
  • 【C#设计模式(21)——状态模式(State Pattern)】
  • nvm日常使用中常用命令总结
  • 【数据仓库】SparkSQL数仓实践
  • PessimisticLock
  • 【Maven】属性管理
  • 微信小程序性能优化、分包
  • TDengine 新功能 VARBINARY 数据类型
  • 【Maven】工程依赖下载失败错误解决