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

Vue3中点击切换div的is-active类名有什么更简洁的实现方案?

Vue 自定义下拉框类名切换的简洁实现方式

有两种更简洁的实现方案可选:

方案1:三元表达式直接切换类名

仅修改open函数的逻辑,一行代码即可替代多分支if判断,符合你要求的字符串类名切换需求:

setup() {
    let is_active = ref('no-active');

    function open() {
      is_active.value = is_active.value === 'is-active' ? 'no-active' : 'is-active';
    }

    return {
      is_active,
      open
    }
  }

方案2:布尔状态+Vue原生类绑定(更推荐的最佳实践)

虽然你已知布尔值实现方案,但该方案语义更清晰、维护成本更低,适配Vue的响应式设计思路:
模板部分修改为:

<div :class="{ 'is-active': isActive, 'no-active': !isActive }" @click="open">

逻辑部分修改为:

setup() {
    let isActive = ref(false);

    function open() {
      isActive.value = !isActive.value;
    }

    return {
      isActive,
      open
    }
  }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:09:01