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组件。

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

相关推荐
默_笙9 小时前
🎃 前端学了 Next.js,后端该学啥?NestJS 就是 Node 版的蜜雪冰城
前端·javascript
前端snow10 小时前
ai agent --- 实现 openclaw 定时间效果
前端
码云之上10 小时前
换模型之后,Chatbot 为什么要自己做 compact?
前端·agent·前端工程化
এ慕ོ冬℘゜10 小时前
navigator 导航对象 BOM制作方法
javascript
星栈11 小时前
自定义 UI-UX-Pro-Max 的 CSV 知识库,把 AI 生成的后台拉回行业该有的样子
前端·agent·weui
研☆香11 小时前
简单的图片上传 删除 预览
前端
ITresearchGuest11 小时前
我用 AI 一小时写了一个世界杯数据可视化平台|前端 VibeCoding 初体验
前端·人工智能·信息可视化
慧一居士12 小时前
Vite项目中使用Less步骤,详细使用示例
前端·css
花间相见13 小时前
【LangChain组件03】—— LangChain Agents 执行与状态:工作流程与状态管理实战
java·前端·langchain
kyriewen13 小时前
面试官让我用 AI 重构一个 8 年陈的 React 组件——他说他不看代码,只看我会不会拆
前端·javascript·面试