Javascript Vue方法中的数组非常慢?

Javascript Vue方法中的数组非常慢?,javascript,html,vue.js,Javascript,Html,Vue.js,在html中: <div @mouseenter='setDisplay(0)' @mouseleave='setHide(0)' <div class="innerHolder" v-show='innerDisplay[0]' > aaa </div> </div> 然后在方法上: setDisplay(index){ this.innerDisplay[index] = true; }, setHide

在html中:

<div @mouseenter='setDisplay(0)' @mouseleave='setHide(0)'
  <div
    class="innerHolder"
    v-show='innerDisplay[0]'
    >
    aaa
  </div>
</div>
然后在方法上:

setDisplay(index){
  this.innerDisplay[index] = true;
},
setHide(index){
  this.innerDisplayArray[index] = false;
},
奇怪,它能工作,但速度很慢。这个“慢”意味着当我的鼠标进入父div大约5秒时,子div将显示。但是如果我使用这个:

v-show:'innerDisplay'
在我使用的数据中:

innerDisplay: false;
而mouseenter事件只是改变了布尔值的大小,而不是布尔值的数组,当鼠标在一秒钟内移动时,子div就会显示出来

数组是否减慢了方法的速度

问题是

由于JavaScript的限制,Vue无法检测到以下内容 对数组的更改:

  • 直接使用索引设置项时,例如vm.items[indexOfItem]=newValue
  • 您需要使用
    $set

    newvue({
    el:“#应用程序”,
    数据:{
    innerDisplay:[假,假,假]
    },
    方法:{
    设置显示(索引){
    this.$set(this.innerDisplay,index,true);
    },
    设置隐藏(索引){
    this.$set(this.innerDisplay,index,false);
    }
    }
    });
    
    
    之前
    aaa
    之后
    
    问题是

    由于JavaScript的限制,Vue无法检测到以下内容 对数组的更改:

  • 直接使用索引设置项时,例如vm.items[indexOfItem]=newValue
  • 您需要使用
    $set

    newvue({
    el:“#应用程序”,
    数据:{
    innerDisplay:[假,假,假]
    },
    方法:{
    设置显示(索引){
    this.$set(this.innerDisplay,index,true);
    },
    设置隐藏(索引){
    this.$set(this.innerDisplay,index,false);
    }
    }
    });
    
    
    之前
    aaa
    之后
    
    我不知道Vue到底是怎么回事,但我认为它可能是由更改检测造成的。我会尝试更改setDisplay和setHide方法来创建一个新数组,比如:setDisplay(index){this.innerDisplay=this.innerDisplay.map((e,I)=>I==index?true:e);}setHide(index){this.innerDisplayArray=this.innerDisplayArray.map((e,I)=>I==index?true:e);}我不知道Vue到底是怎么回事,但我认为它可能是由变化检测引起的。我会尝试更改setDisplay和setHide的方法来创建一个新的数组,比如:setDisplay(index){this.innerDisplay=this.innerDisplay.map((e,I)=>I==index?true:e);}setHide(index){this.innerDisplayArray=this.innerDisplayArray.map((e,I)=>I==index?true:e);}非常感谢我的朋友!(●'◡'●)ノ♥非常感谢你,我的朋友(●'◡'●)ノ♥
    innerDisplay: false;