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

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

相关推荐
CodeSheep8 分钟前
Stack Overflow,轰然倒下了!
前端·后端·程序员
i紸定i8 分钟前
解决html-to-image在 ios 上dom里面的图片不显示出来
前端·ios·vue·html·html-to-image
ai.Neo10 分钟前
(第十七期)HTML图像标签详解:从入门到精通
前端·html
阿珊和她的猫11 分钟前
autofit.js: 自动调整HTML元素大小的JavaScript库
开发语言·javascript·html
excel13 分钟前
JS 函数终极指南:this、闭包、递归、尾调用、柯里化,一次性吃透
前端
夏天想15 分钟前
html模拟websocket通信
前端
Stringzhua38 分钟前
Vue中的数据渲染【4】
css·vue.js·css3
阿珊和她的猫5 小时前
v-scale-scree: 根据屏幕尺寸缩放内容
开发语言·前端·javascript
加班是不可能的,除非双倍日工资9 小时前
css预编译器实现星空背景图
前端·css·vue3
wyiyiyi9 小时前
【Web后端】Django、flask及其场景——以构建系统原型为例
前端·数据库·后端·python·django·flask