4
Condider下面的代码片断:防止从Vue公司重用aggresively DOM元素
<template v-if="tryIsMobile" >
<div class='device device-mobile-portrait' :class="deviceClass">
<div class="device-scroller-container">
<div class='device-scroller'>
<img id='tryit-img-mobile' :src="srcUrlMobile" v-on:load="onImgLoad" v-on:error="onImgError"/>
</div>
</div>
</div>
</template>
<template v-else>
<div class='device device-tablet-landscape' :class="deviceClass" >
<div class="device-scroller-container">
<div class='device-scroller'>
<img id='tryit-img-tablet' :src="srcUrlTablet" v-on:load="onImgLoad" v-on:error="onImgError"/>
</div>
</div>
</div>
</template>
此代码有条件地使所述两个图像中的一个。某些用户操作会导致实际显示的图像被切换。
我看到的是以下内容:当从说,tryit-img-mobile
切换到tryit-img-tablet
时,作为tryit-img-mobile
的一部分加载的图像将立即以不同的尺寸显示。但是,在图像加载期间,它是新来源:src="srcUrlTablet"
,仍然显示带有src :src="srcUrlMobile"
的图像。
这可能是由于Vue对两个模板使用相同的img-tag。我如何防止Vue做到这一点,而是使用单独的img标签?
添加'key'属性对你'device'元素,具有一些独特的价值,比如'键=“桌面“'和'key =”mobile“'。这将告诉Vue不要重复使用这些元素。 –
@JosephSilber:woeha,似乎已经解决了它!如果你喜欢把它记下来,我很乐意接受。 –