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

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

相关推荐
Code_Geo6 分钟前
python中Web框架Flask vs FastAPI 对比分析
前端·python·flask
江畔柳前堤16 分钟前
PyQt学习系列05-图形渲染与OpenGL集成
开发语言·javascript·人工智能·python·学习·ecmascript·pyqt
打小就很皮...36 分钟前
深入探索 CSS 中的伪类:从基础到实战
前端·css
2301_8089138337 分钟前
如何把vue项目部署在nginx上
javascript·vue.js·ecmascript
Lhuu(重开版1 小时前
Vue:axios(GET请求)
前端·javascript·vue.js
万物更新_1 小时前
HTML-前端
前端·html
sg_knight1 小时前
Flutter跨平台通信实战|3步打通Android原生能力,实现底层API调用!
android·前端·javascript·flutter·跨平台·web·双向通信
yz-俞祥胜3 小时前
【疑难杂症】Vue前端下载文件无法打开 已解决
前端·javascript·vue.js
TE-茶叶蛋3 小时前
前端错误监听与上报框架工作原理,如:Sentry
前端·javascript·sentry
漫谈网络3 小时前
TypeScript 和 JavaScript核心关系及区别
前端·javascript·typescript