在vue中,如何不让mouseover影响列表的每一个元素?

In vue, how to not allow mouseover to affect every element of the list?

我有一个 v-for,列表的每个元素都有一个鼠标悬停事件。我希望当鼠标悬停在该元素上时,变量值会发生变化,因此 div 会出现在该元素旁边(.checkbox div)。但是相反,由于所有元素都使用相同的变量,因此所有 div 都会出现。这是我的代码:

<md-card v-for="route in routes" :key="route.id">
    <md-card-area>
      <div class="checkbox" v-show="hover == true" @mouseover="hover = true">
        <input type="checkbox" v-model="route.checked"/>
      </div>
      <div @mouseover="hover = true" @mouseout="function() { if (route.checked == false) hover = false }">
       </div>
    </md card-area>
</md-card>

我试过使用 mouseover.native 但它不起作用。我也尝试使用而不是更改悬停变量,更改 route.hover 变量但它不会被更改。

添加另一个名为 currentIndex 的变量:

data(){
  return{
    currentIndex:-1,
     hover:false,

  }
}

在 v-for 循环中添加 index 并使用悬停索引更新 currentIndex 并添加此条件 hover == true && currentIndex===index:

<md-card v-for="(route,index) in routes" :key="route.id">
    <md-card-area>
      <div class="checkbox" v-show="hover == true && currentIndex===index" @mouseover="hover = true" >
        <input type="checkbox" v-model="route.checked"/>
      </div>
      <div @mouseover="hover = true;currentIndex=index" @mouseout="function() { if (route.checked == false){ hover = false; currentIndex=-1;} }">
       </div>
    </md card-area>
</md-card>