Javascript Vue方法中的数组非常慢?
在html中: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
<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无法检测到以下内容
对数组的更改:
$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;