Vue 3.0 v-for中的Ref数组

简介: Vue 3.0 v-for中的Ref数组

前言

hello world欢迎来到前端的新世界


😜当前文章系列专栏:vue.js

🐱‍👓博主在前端领域还有很多知识和技术需要掌握,正在不断努力填补技术短板。(如果出现错误,感谢大家指出)🌹

💖感谢大家支持!您的观看就是作者创作的动力

介绍


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 也可以是响应式的且可以被监听。

后言

创作不易,要是本文章对广大读者有那么一点点帮助 不妨三连支持一下,您的鼓励就是博主创作的动力


目录
相关文章
|
存储 JavaScript 前端开发
【Vue】【杂碎】const a = ref(0) 和 let a = 0 的区别?
【Vue】【杂碎】const a = ref(0) 和 let a = 0 的区别?
257 0
|
9月前
|
JavaScript
vue3中reactive和ref函数及对比
vue3中reactive和ref函数及对比
44 1
|
API
vue3 ref和reactive的用法
Vue3中的ref和reactive是Composition API中的两个基本函数。
579 0
|
9月前
|
JavaScript 前端开发 API
Vue中ref与reactive的区别
Vue中ref与reactive的区别
68 0
|
JavaScript
vue3中ref和reactive的区别?
1.ref和reactive区别: 如果在template里使用的是ref类型的数据, 那么Vue会自动帮我们添加.value 如果在template里使用的是reactive类型的数据, 那么Vue不会自动帮我们添加.value
113 0
|
9月前
|
API
Vue3 中 ref和reactive的区别是什么?
在 Vue3 中,ref 和 reactive 是两个用于处理响应式数据的 API。它们的目的都是使数据具有响应性,但它们之间存在一些重要的区别。
117 0
|
JavaScript 前端开发 API
Vue ref和reactive 的区别
Vue ref和reactive 的区别
143 0
|
JSON JavaScript 前端开发
vue中什么是ref,什么是reactive?区别是什么?
首先ref函数和reactive函数都是用来定义响应式数据; 但是reactive更适合定义复杂的数据类型(json/arr)、ref适合定义基本数据类型(可接收基本数据类型和对象)
156 0

热门文章

最新文章