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

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.xdnf.cn/news/7047.html

相关文章:

  • 信贷域——互联网金融业务
  • 低空经济发展现状与前景
  • 聚集索引 vs. 非聚集索引
  • 恒大歌舞团全集
  • Android 14 解决打开app出现不兼容弹窗的问题
  • 参考工具/网站
  • scss additionalData Can‘t find stylesheet to import
  • 强化学习入门:马尔科夫奖励过程二
  • 什么是API接口?API接口的核心价值
  • 网关GateWay——连接不同网络的关键设备
  • STM32IIC实战-OLED模板
  • TC3xx学习笔记-UCB BMHD使用详解(二)
  • 使用NVM管理node版本
  • GO语言学习(二)
  • CSS 浮动与定位以及定位中z-index的堆叠问题
  • 设计练习 - Movie Review Aggregator System
  • 探秘Transformer系列之(33)--- DeepSeek MTP
  • 【爬虫】DrissionPage-6
  • MapReduce 原理深度剖析:从任务执行到参数配置
  • AI编码代理的崛起 - AlphaEvolve与Codex的对比分析引言
  • 61. 旋转链表
  • 理解 plank 自动生成的 copyWithBlock: 方法
  • C++(初阶)(十八)——AVL树
  • 深入解析:如何基于开源OpENer开发EtherNet/IP从站服务
  • 深入浅出IIC协议 - 从总线原理到FPGA实战开发 -- 第一篇:I2C总线协议深度解剖
  • 广和通L610模块通过AT指令访问服务器方案:嵌赛使用
  • 蓝桥杯-不完整的算式
  • select语句的书写顺序
  • DAY 23 训练
  • Vue框架