欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue else失效

劉姿婷1年前7瀏覽0評論

最近在開發Vue項目時,遇到一個奇怪的問題:else語句無法正常運行。下面是我的代碼:

<template>
<div v-if="isLoading">
Loading...
</div>
<div v-else>
Content
</div>
</template>
<script>
export default {
data() {
return {
isLoading: true
}
}
}
</script>

按照這個代碼,當isLoading為true時應該只顯示Loading...,否則應該顯示Content。但是實際運行時,無論isLoading是true還是false,都只會顯示Loading...,else語句好像沒有生效。

經過一番調試,我發現問題出在我使用了Vue 2.6之后新增的v-if的緩存功能。如果你不了解這個功能,可以查看Vue官方文檔中關于v-if的介紹。

簡單來說,就是當v-if條件為false時,Vue會將該元素從DOM樹中移除,然后保存下來,當條件為true時再重新插入DOM中。這個操作涉及到緩存,導致我們在使用v-if的同時,需要特別注意其它指令的使用。

那么對于我們的問題,只需要將v-if改成v-show即可:

<template>
<div v-show="isLoading">
Loading...
</div>
<div v-show="!isLoading">
Content
</div>
</template>
<script>
export default {
data() {
return {
isLoading: true
}
}
}
</script>

這樣修改后,就可以正常顯示Loading...和Content了。

總之,要避免這類問題,最好在使用v-if時,不要和其它指令混用。