Vue3模板引用的操作方式示例详解

 更新时间:2023年06月16日 09:46:35   作者:mdnice  
这篇文章主要为大家介绍了Vue3模板引用的操作方式示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

访问模板引用

在某些情况下我们仍需要获取到原生的dom节点,可以使用ref属性,具体操作如下:

<input type="text" ref="inputRef">
<script setup>
import {onMounted, ref} from 'vue'
// 必须与元素中的ref值同名,并且初始值为null
const inputRef = ref(null)
// 在onMounted中以保证dom渲染完成,以防拿不到dom
onMounted(() => { 
    console.log(inputRef.value)
})
</script>

v-for 中的模板引用

得到的是一个装着dom的数组

<ul>
  <li v-for="item in datalist" :key="item" ref="itemRefs">{{ item }}</li>
</ul>
const datalist = reactive([1,2,3,4,5,6])
const itemRefs = ref(null)
onMounted(() => { 
    console.log(itemRefs.value)  // 输出一个数组
})

函数模板引用

ref 还可以绑定为一个函数,会在每次组件更新时都被调用。该函数会收到元素引用作为其第一个参数:

<!-- 这里获取p标签的dom -->
<p :ref="(el) => {getRef(el)}">name: {{ name }}</p>
<input type="text" v-model.lazy="name">
const getRef = (el) => { 
    console.log(el)
}

以上代码中每次更新name值就会调用一次ref绑定的回调函数

改变了3次

输出如下:

组件上的 ref

ref用在了子组件上会获取到子组件的实例。特别注意的是如果子组件使用的不是组合式API而是使用的Vu2的选项式API,那么获取到的子组件实例和该组件的this一致所以父组件可以访问到子组件的所有属性,如果子组件使用了<script setup>则该组件是私有的,父组件访问不到里面的属性,关于组件间通讯的问题以后会详细讲解。

<script setup>
import { ref, onMounted } from 'vue'
import Child from './Child.vue'
const child = ref(null)
onMounted(() => {
  // child.value 是 <Child /> 组件的实例
})
</script>
<template>
  <Child ref="child" />
</template>

以上就是Vue3模板引用的详细内容,更多关于Vue3模板引用的资料请关注脚本之家其它相关文章!

相关文章

  • 深入了解Vue之组件的生命周期流程

    深入了解Vue之组件的生命周期流程

    每个Vue实例在创建时都要经过一系列初始化, 例如设置数据监听、编译模板、将实例挂载到DOM并在数据变化时更新DOM等,同时, 也会运行一些叫作生命周期钩子的函数,接下来让我们一起来探索Vue实例被创建时都经历了什么,感兴趣的同学跟着小编一起来探讨吧
    2023-05-05
  • 通过命令行创建vue项目的方法

    通过命令行创建vue项目的方法

    这篇文章主要介绍了通过命令创建vue项目的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • 样式穿透vue中的scoped详谈

    样式穿透vue中的scoped详谈

    这篇文章主要为大家介绍了样式穿透vue中的scoped示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Vue实现简单分页器

    Vue实现简单分页器

    这篇文章主要为大家详细介绍了Vue实现简单分页器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • vue实现div拖拽互换位置

    vue实现div拖拽互换位置

    这篇文章主要为大家详细介绍了vue实现div拖拽互换位置的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • Vue中使用 class 类样式的方法详情

    Vue中使用 class 类样式的方法详情

    这篇文章主要介的是 Vue中如何使用 class 类样式的方法,在vue中为我们提供了几种方式来使用class类的样式,分别是布尔值、表达式、多类封装、下面来看看文章的详细介绍内容吧,需要的朋友可以参考一下
    2021-11-11
  • vue面试之new Vue的时候到底做了什么

    vue面试之new Vue的时候到底做了什么

    这篇文章主要介绍了vue面试之new Vue的时候到底做了什么原理及vue加载流程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • Vue 实时监听窗口变化 windowresize的两种方法

    Vue 实时监听窗口变化 windowresize的两种方法

    这篇文章主要介绍了Vue 实时监听窗口变化 windowresize的两种方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-11-11
  • Vue引入腾讯地图全过程(搜索获取定位)

    Vue引入腾讯地图全过程(搜索获取定位)

    最近需要在项目中使用地图显示点位信息,所以引入了腾讯地图,这篇文章主要给大家介绍了关于Vue引入腾讯地图(搜索获取定位)的相关资料,需要的朋友可以参考下
    2023-10-10
  • Vue resource中的GET与POST请求的实例代码

    Vue resource中的GET与POST请求的实例代码

    本篇文章主要介绍了Vue resource中的GET与POST请求的实例代码,非常具有实用价值,需要的朋友可以参考下
    2017-07-07

最新评论