You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue修改数据后未重渲染,如何解决v-if/v-else切换失效问题?

Vue v-if/v-else 切换不生效的解决方案

你的代码问题出在按钮的点击事件绑定上,直接修改这一处就能解决:

修正后的完整代码

<template>
    <div v-if="bool">
        true
    </div>
    <div v-else>
        false // if button pressed, i should be shown!!!!
    </div>
    <button @click='onClickEvent'>click!!!!!!</button>
</template>
<script>
    export default {
        data: function () {
            return {
                bool: true
            };
        },
        methods: {
            onClickEvent: function(){
                this.bool= false
            }
        }
    };
</script>

问题原因

你原本用了:click='onClickEvent()',这里的:click是Vue的动态属性绑定语法,不是事件绑定。而且onClickEvent()会在组件初始化时就立刻执行一次,之后点击按钮不会再触发这个方法,导致bool值始终是true,v-if/v-else自然不会切换。

正确的写法是用@click(v-on:click的简写)绑定事件,并且绑定方法时不需要加括号(加括号会变成立即执行)。

内容的提问来源于stack exchange,提问作者Gloomy Young

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 09:15:32