当前位置: 首页 > news >正文

vue如何实现组件切换

一、使用条件渲染 (v-if)

<template><div><button @click="currentView = 'ComponentA'">Show Component A</button><button @click="currentView = 'ComponentB'">Show Component B</button><component-a v-if="currentView === 'ComponentA'"></component-a><component-b v-if="currentView === 'ComponentB'"></component-b></div>
</template>
<script>
import ComponentA from './ComponentA.vue';
import ComponentB from './ComponentB.vue';
export default {data() {return {currentView: 'ComponentA'};},components: {ComponentA,ComponentB}
};
</script>

二、使用动态组件 (component)

<template><div><button @click="currentView = 'ComponentA'">Show Component A</button><button @click="currentView = 'ComponentB'">Show Component B</button><component :is="currentView"></component></div>
</template><script>
import ComponentA from './ComponentA.vue';import ComponentB from './ComponentB.vue';export default {data() {return {currentView: 'ComponentA'};},components: {ComponentA,ComponentB}
};
</script>

 三、点击按钮切换组件

<template><div><button @click="toggleComponent">切换组件</button><div v-if="showComponent"><ComponentA /></div><div v-else><ComponentB /></div></div>
</template><script>
import ComponentA from './ComponentA.vue'
import ComponentB from './ComponentB.vue'export default {data() {return {showComponent: true}},methods: {toggleComponent() {this.showComponent = !this.showComponent}},components: {ComponentA,ComponentB}
}
</script>
<template><div><button @click="toggleComponent">切换组件</button><transition name="fade"><component :is="currentComponent" /></transition></div>
</template><script>
import ComponentA from './ComponentA.vue'
import ComponentB from './ComponentB.vue'export default {data() {return {currentComponent: 'ComponentA'}},methods: {toggleComponent() {this.currentComponent = this.currentComponent === 'ComponentA' ? 'ComponentB' : 'ComponentA'}},components: {ComponentA,ComponentB}
}
</script><style>
.fade-enter-active,
.fade-leave-active {transition: opacity 0.5s;
}.fade-enter,
.fade-leave-to {opacity: 0;
}
</style>

 

http://www.lryc.cn/news/486082.html

相关文章:

  • 计算机视觉 1-8章 (硕士)
  • 整数唯一分解定理
  • Grass脚本2倍速多账号
  • 15分钟学 Go 第 56 天:架构设计基本原则
  • HTML5 Video(视频)
  • 开源模型应用落地-qwen模型小试-Qwen2.5-7B-Instruct-tool usage入门-串行调用多个tools(三)
  • MySQL:表设计
  • 173. 二叉搜索树迭代器【 力扣(LeetCode) 】
  • 大三学生实习面试经历(1)
  • 【论文复现】STM32设计的物联网智能鱼缸
  • 常见长选项和短选项对应表
  • Ubuntu24 上安装搜狗输入法
  • 【AI图像生成网站Golang】JWT认证与令牌桶算法
  • 关于强化学习的一份介绍
  • Python3.11.9+selenium,获取图片验证码以及输入验证码数字
  • Flutter:事件队列,异步操作,链式调用。
  • 从零开始学习 sg200x 多核开发之 eth0 自动使能并配置静态IP
  • 《TCP/IP网络编程》学习笔记 | Chapter 11:进程间通信
  • 开源模型应用落地-qwen模型小试-Qwen2.5-7B-Instruct-tool usage入门-集成心知天气(二)
  • 通过声纹或者声波来切分一段音频
  • sql专场练习(二)(16-20)完结
  • [ 网络安全介绍 2 ] 网络安全发展现状
  • 《基于Oracle的SQL优化》读书笔记
  • 零基础利用实战项目学会Pytorch
  • Go八股(Ⅵ)Goroutine 以及其中的锁和思想
  • 向潜在安全信息和事件管理 SIEM 提供商提出的六个问题
  • 蓝桥杯每日真题 - 第15天
  • Python的Matplotlib
  • Python数据分析:分组转换transform方法
  • 高效灵活的Django URL配置与反向URL实现方案