举报投诉联系我们 手机版 热门标签 VUE中文网
您的位置:VUE中文网 > vue中ref的用法 Vue 3.0 v-for中的Ref数组

vue中ref的用法 Vue 3.0 v-for中的Ref数组

2023-02-28 05:17 VUE3教程

vue中ref的用法 Vue 3.0 v-for中的Ref数组

vue中ref的用法

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

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

1. 作为一个属性值:
    
new Vue({ el: '#app', methods: { getInputValue() { console.log(this.$refs.input.value) // 获取文本框的值 } } }) 2. 作为一个函数:
// 子组件
new Vue({ // 父组件 el: '#app', methods: { getChildValue() { console.log(this.$refs.child) // 获取子组件实例对象 } } })

在 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 也可以是响应式的且可以被监听。
阅读全文
以上是VUE中文网为你收集整理的vue中ref的用法 Vue 3.0 v-for中的Ref数组全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 VUE中文网 vue88.com 版权所有 联系我们