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

在Vue中如何根据条件设置不同的Bootstrap类?

Vue动态绑定Bootstrap列类名解决方案

原有写法失效原因

你用的是Pug模板语法,这类模板对缩进精度要求极高,如果子节点和父节点的缩进空格数不统一(比如有的用2空格有的用4空格、缩进漏打),就会导致v-if判断逻辑无法正常触发,出现和预期不符的渲染结果。

可行实现方案

方案1:修复原有v-if判断写法

确保Pug缩进统一,即可正常生效,示例代码如下:

.row
  // isIndividual为true时渲染1个占满整行的列
  .col-md-12(v-if="isIndividual")
    // 此处写列内内容
  // isIndividual为false时渲染两个各占半行的列
  .col-md-6(v-if="!isIndividual")
    // 此处写第一列内容
  .col-md-6(v-if="!isIndividual")
    // 此处写第二列内容

方案2:动态class绑定(更易维护)

无需重复写列节点的通用内容,修改内容只需要调整一处,代码更简洁:

Pug模板写法

.row
  .col(:class="isIndividual ? 'col-md-12' : 'col-md-6'")
    // 此处写第一列内容
  .col.col-md-6(v-if="!isIndividual")
    // 此处写第二列内容

原生HTML模板写法

如果你用的是Vue默认的HTML模板,写法如下:

<div class="row">
  <div :class="isIndividual ? 'col-md-12' : 'col-md-6'">
    <!-- 第一列内容 -->
  </div>
  <div class="col-md-6" v-if="!isIndividual">
    <!-- 第二列内容 -->
  </div>
</div>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:24:04