前端流行框架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>

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

相关推荐
fly啊2 分钟前
前端 vs 后端请求:核心差异与实战对比
前端
陈哥聊测试8 分钟前
当DevOps落地实施撞上技术债务,如何量化债务突破困局
前端·自动化运维·devops
sorryhc12 分钟前
【AI解读源码系列】ant design mobile——CapsuleTabs胶囊选项卡
前端·javascript·react.js
狗头大军之江苏分军18 分钟前
频繁跳槽和稳定工作有什么区别?真的比稳定工作的人差吗?
前端·后端
木子雨廷20 分钟前
Flutter 局部刷新小组件汇总
前端·flutter
用户527096487449026 分钟前
组件库按需引入改造
前端
巧克力7927 分钟前
js数组去重的方法
javascript·面试
Sheeep31 分钟前
Cursor 的使用之学会使用 cursor rule
javascript·后端
CryptoRzz36 分钟前
使用Java对接印度股票市场API开发指南
前端·后端
码间舞37 分钟前
道路千万条,安全第一条!要对付XSS等攻击你有什么手段?你知道什么是CSP吗?
前端·后端·安全