添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

vue中ref的用法

Vue 中的 ref 是一个指令,它可以用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 $refs 对象上。如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例。

Vue 中 ref 的使用方法有两种:

1. 作为一个属性值:

在 Vue 2 中,在 v-for 里使用的 ref attribute 会用 ref 数组填充相应的 $refs property。当存在嵌套的 v-for 时,这种行为会变得不明确且效率低下。

在 Vue 3 中,这样的用法将不再在 $ref 中自动创建数组。要从单个绑定获取多个 ref,请将 ref 绑定到一个更灵活的函数上 (这是一个新特性):

<div v-for="item in list" :ref="setItemRef"></div>
结合选项式 API:

export default {
  data() {
    return {
      itemRefs: []
  methods: {
    setItemRef(el) {
      this.itemRefs.push(el)
  beforeUpdate() {
    this.itemRefs = []
  updated() {
    console.log(this.itemRefs)
结合组合式 API:

import { ref, onBeforeUpdate, onUpdated } from "vue"
export default {
  setup() {
    let itemRefs = []
    const setItemRef = el => {
      itemRefs.push(el)
    onBeforeUpdate(() => {
      itemRefs = []
    onUpdated(() => {
      console.log(itemRefs)
    return {
      itemRefs,
      setItemRef
  • itemRefs 不必是数组:它也可以是一个对象,其 ref 会通过迭代的 key 被设置。
  • 如果需要,itemRef 也可以是响应式的且可以被监听。
  •