Vue3中的动态组件,使用动态组件实现页面的切换。

目录

本文主要介绍Vue3中的动态组件,使用动态组件实现页面的切换。

动态组件

在Vue3中,动态组件是通过<component>元素来实现的。动态组件可以根据所设置的组件名称动态地渲染不同的组件。

动态组件可以通过以下步骤来使用:

  1. 在Vue组件中使用<component>元素,并将组件名称设置为一个变量,如<component :is="currentComponent"></component>

  2. 在组件中定义一个变量来存储当前要渲染的组件名称,如currentComponent

  3. 动态修改currentComponent变量的值,可以通过一个组件中的事件来触发,例如点击按钮或根据数据的不同进行切换。

例如,在下面的例子中,我们可以使用<component>元素来渲染不同的组件:
FirstComponent.vue

html 复制代码
<template>
	<div>FirstComponent</div>
</template>

<script>
</script>

<style>
</style>

SecondComponent.vue

html 复制代码
<template>
	<div>SecondComponent</div>
</template>

<script>
</script>

<style>
</style>

App.vue

html 复制代码
<template>
  <div>
    <button @click="toggleComponent">Toggle Component</button>
    <component :is="currentComponent"></component>
  </div>
</template>

<script>
import FirstComponent from './components/FirstComponent.vue'
import SecondComponent from './components/SecondComponent.vue'

export default {
  components: {
    FirstComponent,
    SecondComponent
  },
  data() {
    return {
      currentComponent: 'FirstComponent'
    }
  },
  methods: {
    toggleComponent() {
      if (this.currentComponent === 'FirstComponent') {
        this.currentComponent = 'SecondComponent'
      } else {
        this.currentComponent = 'FirstComponent'
      }
    }
  }
}
</script>

在这个例子中,我们有两个组件 FirstComponentSecondComponent,并且在 data 中定义了一个 currentComponent 变量,来存储当前要渲染的组件名称。通过点击按钮的事件来切换组件。

  1. 首次进入图1-1所示:

    图1-1 默认状态

  2. 点击Toggle Component按钮后,如图1-2所示:

    图1-2 点击了1次Toggle Component按钮,切换到了SecondComponent组件。

  3. 再次点击Toggle Component按钮后,如图1-3所示:

    图1-3 第2次点击Toggle Component按钮,切换回了FirstComponent组件。

以上就是通过点击按钮的方式,实现了使用动态组件切换页面的功能。

相关推荐
人间凡尔赛2 分钟前
React Compiler 正式落地一年:告别手动 useMemo/useCallback 的全栈实践
前端·性能优化·react
LaughingZhu14 分钟前
Product Hunt 每日热榜 | 2026-08-02
前端·神经网络·react.js·搜索引擎·前端框架
90后的晨仔10 小时前
从 H5 到 uni-app:一篇写给前端小白的"翻译指南"
前端·vue.js·前端框架
陈随易10 小时前
moon,apt和yum之外linux系统命令安装新选择
前端·后端·程序员
IT小盘11 小时前
13-企业Prompt模板-角色任务约束与输出格式
java·前端·prompt
徐小夕12 小时前
开源!我用SQLite + DuckDB打造了一款可视化AI问数平台
前端·算法·github
leslie11812 小时前
babel笔记
前端
用户0595401744612 小时前
Redis 记忆存储踩坑实录:一个并发写入 Bug 让我排查了 4 小时
前端·css
小徐_233313 小时前
Wot UI 2.3.0 发布:二维码组件来了,Open Wot 与 wot-starter 同步更新
前端·微信小程序·uni-app
kyriewen13 小时前
Claude自己跑出去hack了3家公司——我为什么还在用它写代码
前端·ai编程·claude