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

Vue.js中active类的正确使用:实现点击组件切换文本颜色

解决方案

问题分析

你当前的代码用单个布尔值isActive无法区分两个独立选项,没法实现点击对应组件切换激活状态的效果,另外第二个选项的文本还写错了(重复显示"Phone OTP")。

修改方案

1. 调整数据状态

把原来的isActive替换成跟踪当前选中类型的otpType,初始可设置默认激活项:

<script>
export default {
  data() {
    return {
      otpType: 'phoneOtp', // 默认激活Phone OTP
      enabled2FAs: ['phoneOtp', 'authenticatorApp'] // 若这个数组未在别处定义,需补充在此
    };
  }
};
</script>

2. 修正模板代码

  • 修复第二个选项的文本错误
  • 修改类绑定逻辑:通过判断otpType是否等于当前选项的类型,来切换激活/未激活样式
<div
  v-if="enabled2FAs.includes('phoneOtp')"
  @click="otpType = 'phoneOtp'"
>
  <div :class="[otpType === 'phoneOtp' ? activeClass : 'red']">
    Phone OTP
  </div>
</div>
<div
  v-if="enabled2FAs.includes('authenticatorApp')"
  @click="otpType = 'authenticatorApp'"
>
  <div :class="[otpType === 'authenticatorApp' ? activeClass : 'red']">
    Authenticator App
  </div>
</div>

3. 确保样式已定义

如果还没设置activeClass的样式,补充如下:

<style scoped>
.activeClass {
  color: #2ecc71; /* 激活状态的文本颜色,可自行修改 */
}
.red {
  color: #e74c3c; /* 未激活状态的文本颜色 */
}
</style>

效果说明

点击任意选项时,otpType会更新为对应的值,模板会自动判断并切换该选项的样式,实现点击切换激活状态、改变文本颜色的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 01:45:32