Vue3 按钮切换示例(启动 / 关闭互斥显示)

Vue3 按钮切换示例(启动/关闭互斥显示)

我给你写一个最简、可直接运行的 Vue3 示例:

  • 只有启动 和关闭两个按钮
  • 永远只显示其中一个
  • 点击切换状态
  • 用 Vue3 组合式 API(<script setup>)

完整代码

vue 复制代码
<template>
  <!-- 按钮容器 -->
  <div class="btn-box">
    <!-- 启动按钮:只有 isClosed 为 true 时显示 -->
    <button 
      v-if="isClosed" 
      @click="switchStatus"
      class="start-btn"
    >
      启动
    </button>

    <!-- 关闭按钮:只有 isClosed 为 false 时显示 -->
    <button 
      v-else 
      @click="switchStatus"
      class="stop-btn"
    >
      关闭
    </button>
  </div>
</template>

<script setup>
import { ref } from 'vue'

// 状态:true = 显示启动按钮 | false = 显示关闭按钮
const isClosed = ref(true)

// 切换状态函数
const switchStatus = () => {
  isClosed.value = !isClosed.value
}
</script>

<style scoped>
.btn-box {
  margin: 20px;
}
.start-btn {
  padding: 8px 16px;
  background: #409eff;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}
.stop-btn {
  padding: 8px 16px;
  background: #f56c6c;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}
</style>

核心逻辑说明

  1. 状态控制

    • 用 isClosed 响应式变量控制显示哪个按钮
    • 初始值 true → 默认显示启动按钮
  2. 互斥显示

    • v-if="isClosed" → 为 true 显示启动
    • v-else → 显示关闭
    • 两个按钮永远只出现一个
  3. 点击切换

    • 点击任意按钮触发 switchStatus()
    • 执行 isClosed.value = !isClosed.value 取反状态
    • 视图自动更新

效果

  • 页面刚打开:显示 蓝色启动按钮
  • 点击启动按钮:按钮变成 红色关闭按钮
  • 点击关闭按钮:变回 蓝色启动按钮

总结

  1. 用一个 ref 变量控制按钮显示隐藏
  2. v-if/v-else 实现按钮互斥展示
  3. 点击取反状态值即可完成切换,简单高效
相关推荐
迅猛龙办公室12 分钟前
python实现倒序输出数字
开发语言·python
夏幻灵6 小时前
JavaScript this 面试:五种绑定规则、优先级与常见面试陷阱
开发语言·javascript·面试
程序猿编码6 小时前
榨干 RTX5090 算力!Qwen3 专用单卡推理引擎,手写C++/CUDA 算子实现 MTP 推测解码
开发语言·c++·大模型推理·qwen3·多模态推理
三天不学习7 小时前
Egg.js 4 突然爆火,原因是否归结于AI 原生落地需求爆发?
前端·javascript·全栈·egg.js
xcs194057 小时前
前端 vue 的前端页面debugger 进不去
前端·javascript·vue.js
bkspiderx8 小时前
Qt 插件机制:动态扩展应用功能的核心框架
开发语言·qt·元数据·qt 插件·qpluginloader
程序员老陆8 小时前
深入理解 C++ thread_local:线程私有存储的正确打开方式
开发语言·c++·程序设计
沐晓时光8 小时前
C语言入门,深入理解指针(3)
c语言·开发语言
码云数智-园园8 小时前
unique_ptr 还是 shared_ptr?C++ 智能指针选型与内存泄漏实战分析
java·开发语言
禾小西9 小时前
07丨Redis 哨兵机制:主库故障后,如何恢复服务?
java·开发语言·redis