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. 点击取反状态值即可完成切换,简单高效
相关推荐
kyriewen1 天前
我给前端项目的接口请求套了6层保护——才发现以前一直在裸奔
前端·javascript·面试
wdfk_prog1 天前
嵌入式面试真题第 15 题:不可恢复异常后的通用崩溃快照、调用栈保存与离线分析架构
linux·开发语言·面试·架构
晴空了无痕1 天前
从 Go 基础到 K8s:一条可落地的 Go 服务端成长路线
开发语言·后端·golang·kubernetes
神明不懂浪漫1 天前
【第五章】Java中的继承与多态
java·开发语言
神州世通1 天前
解密企业通信安全防线:Avaya Aura 三层安全架构深度解析
开发语言·php
郝亚军1 天前
如何安装webstorm、Node.js和vue CLI
前端·javascript·vue.js
AC赳赳老秦1 天前
企业工商公开信息采集分析:OpenClaw 批量查询企业工商信息,生成企业画像报告
大数据·开发语言·python·自动化·php·deepseek·openclaw
qq_2518364571 天前
基于java Web 动漫视频网站毕业论文
java·开发语言·前端
野生风长1 天前
C++入门基础:从命名空间到引用与指针的全面解析
开发语言·c++
FoldWinCard1 天前
D6 Python 基础语法 --- 保留关键字
开发语言·python