前端流行框架Vue3教程:24.动态组件

24.动态组件

有些场景会需要在两个组件间来回切换,比如 Tab 界面

我们准备好A B两个组件ComponentA ComponentA

App.vue代码如下:

vue 复制代码
<script>
import ComponentA from "./components/ComponentA.vue"
import ComponentB from "./components/ComponentB.vue"

export default {
  data() {
    // 初始化组件状态,决定首先渲染ComponentA
    return {
      tabComponent: 'ComponentA'
    }
  },
  components: {
    ComponentA,
    ComponentB
  }
}
</script>
<template>
    <!-- 动态组件,根据data中的tabComponent属性值来决定渲染哪个组件 -->
  <component :is="tabComponent"></component>
</template>

这个时候我们就可以看到页面显示:

现在我们加个按钮来切换组件:

vue 复制代码
<script>
// 导入组件A
import ComponentA from "./components/ComponentA.vue"
// 导入组件B
import ComponentB from "./components/ComponentB.vue"

export default {
  data() {
    // 初始化组件状态,决定首先渲染ComponentA
    return {
      tabComponent: 'ComponentA'
    }
  },
  components: {
    // 注册组件A和组件B
    ComponentA,
    ComponentB
  }, methods: {
    // 切换组件的方法
    changeHandle() {
      // 根据当前的tabComponent属性值来决定切换到哪个组件
      this.tabComponent = this.tabComponent === 'ComponentA' ? 'ComponentB' : 'ComponentA'
    }
  }
}
</script>
<template>
  <!-- 动态组件,根据data中的tabComponent属性值来决定渲染哪个组件 -->
  <component :is="tabComponent"></component>
  <!-- 当用户点击按钮时,调用changeHandle方法来切换组件 -->
  <button @click="changeHandle">切换组件</button>
</template>

此时,我们就可以点击按钮切换组件了

相关推荐
小鹏linux33 分钟前
Ubuntu 22.04 部署开源免费具有精美现代web页面的Casdoor账号管理系统
linux·前端·ubuntu·开源·堡垒机
前端若水1 小时前
会话管理:创建、切换、删除对话历史
前端·人工智能·python·react.js
Bigger2 小时前
mini-cc:一个轻量级 AI 编程助手的诞生
前端·ai编程·claude
涵涵(互关)2 小时前
Naive-ui树型选择器只显示根节点
前端·ui·vue
BY组态2 小时前
Ricon组态系统最佳实践:从零开始构建物联网监控平台
前端·物联网·iot·web组态·组态
BY组态2 小时前
Ricon组态系统vs传统组态软件:为什么选择新一代Web组态平台
前端·物联网·iot·web组态·组态
SoaringHeart2 小时前
Flutter进阶:OverlayEntry 插入图层管理器 NOverlayZIndexManager
前端·flutter
放下华子我只抽RuiKe52 小时前
React 从入门到生产(四):自定义 Hook
前端·javascript·人工智能·深度学习·react.js·自然语言处理·前端框架
XinZong3 小时前
OpenClaw 实现双重心跳(Heartbeat)+ clawreach虾聊项目实现
javascript
IT_陈寒4 小时前
Redis缓存击穿把我整不会了,原来还有这手操作
前端·人工智能·后端