Vue中 使用 v-for 时动态绑定 ref

Posted 明天也要努力

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue中 使用 v-for 时动态绑定 ref相关的知识,希望对你有一定的参考价值。

关键点

1. 使用 :ref="`record${i}`" (或者 :ref="'record'+i"),为每一项动态添加 ref;
2. 使用 this.$refs[`record${i}`] 获取当前元素 dom 结构

完整代码

<template>
  <div class="wrap">
    <div v-for="(item,i) in testArr" :key="item.id" :ref="`record${i}`" :id="'record'+i" 
      @click="changeStyle(i)">
      {{item.name}}
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      testArr:[
        {
          id:'1',
          name:'张三',
        },{
          id:'2',
          name:'李四',
        },{
          id:'3',
          name:'王五',
        }
      ]
    }
  },
  methods: {
    changeStyle(i){
      this.$refs[`record${i}`][0].style.color = 'red';
    }
  },
  mounted(){
    document.getElementById('record2').style.color = 'green';
  }
}
</script>

DOM 结构

在这里插入图片描述

以上是关于Vue中 使用 v-for 时动态绑定 ref的主要内容,如果未能解决你的问题,请参考以下文章

vue3 中 v-for 的 Ref 需要绑定函数

vue中$refs的使用记录

this.$refs 使用 Vue 3 选项 API 为空

vue.js - v-for 中动态生成的组件没有正确更新绑定属性

vue循环语句v-for中元素绑定值问题

vue循环语句v-for中元素绑定值问题