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

Vue3选项式API中基于Prop的条件类绑定失效求助

问题原因及解决方案

核心错误

你在App.vue中传递布尔类型Prop时,使用了字符串字面量("false"、"true"),而Vue会将任何非空字符串解析为布尔值true——哪怕是字符串"false",也会被判定为真值,所以无论你传哪个,组件里的DARK_MODE都会是true,导致dark类始终被添加。

修复方案

传递布尔类型的Prop必须使用v-bind(缩写为:),这样才能把JavaScript的布尔值传给组件,而不是字符串:

修改后的App.vue代码

<script>
import Logo2 from './components/Logo2.vue'
export default {
  name:"App",
  components: {
    Logo2
  }
}
</script>

<template>
  <!-- 用v-bind传递布尔false -->
  <Logo2 :DARK_MODE="false"></Logo2>
  <!-- 用v-bind传递布尔true,或者直接写DARK_MODE(仅适用于true的情况) -->
  <Logo2 :DARK_MODE="true"></Logo2>
  <!-- 等价写法:<Logo2 DARK_MODE></Logo2> -->
</template>

验证

修改后,第一个组件的DARK_MODE会是布尔false,不会添加dark类;第二个组件的DARK_MODE是布尔true,会添加dark类,完全符合预期。

内容的提问来源于stack exchange,提问作者Alex B

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 14:22:07