) 或路由 (vue-router) 完成。以下…">
当前位置:首页 > VUE

vue实现组件切换案例

2026-02-22 03:26:42VUE

Vue 实现组件切换案例

Vue 中实现组件切换通常可以通过动态组件 (<component :is="currentComponent">) 或路由 (vue-router) 完成。以下是两种常见方法的实现示例:

动态组件切换

通过 v-bind:is 动态绑定组件名,结合按钮点击切换组件。

<template>
  <div>
    <button @click="currentComponent = 'ComponentA'">切换A</button>
    <button @click="currentComponent = 'ComponentB'">切换B</button>
    <component :is="currentComponent"></component>
  </div>
</template>

<script>
import ComponentA from './ComponentA.vue';
import ComponentB from './ComponentB.vue';

export default {
  data() {
    return {
      currentComponent: 'ComponentA'
    };
  },
  components: {
    ComponentA,
    ComponentB
  }
};
</script>

路由切换

通过 vue-router 实现页面级组件切换,需先安装路由库。

  1. 安装路由:

    npm install vue-router
  2. 配置路由文件(router/index.js):

    
    import { createRouter, createWebHistory } from 'vue-router';
    import ComponentA from '../views/ComponentA.vue';
    import ComponentB from '../views/ComponentB.vue';

const routes = [ { path: '/a', component: ComponentA }, { path: '/b', component: ComponentB } ];

const router = createRouter({ history: createWebHistory(), routes });

export default router;


3. 在 `main.js` 中引入路由:
```javascript
import { createApp } from 'vue';
import App from './App.vue';
import router from './router';

createApp(App).use(router).mount('#app');
  1. 在模板中使用 <router-link><router-view>
    <template>
    <div>
     <router-link to="/a">切换到A</router-link>
     <router-link to="/b">切换到B</router-link>
     <router-view></router-view>
    </div>
    </template>

过渡动画效果

为组件切换添加过渡动画,使用 Vue 的 <transition> 标签。

<template>
  <div>
    <button @click="toggleComponent">切换组件</button>
    <transition name="fade" mode="out-in">
      <component :is="currentComponent"></component>
    </transition>
  </div>
</template>

<style>
.fade-enter-active, .fade-leave-active {
  transition: opacity 0.5s;
}
.fade-enter, .fade-leave-to {
  opacity: 0;
}
</style>

状态保持

使用 <keep-alive> 缓存非活跃组件状态,避免重复渲染。

<keep-alive>
  <component :is="currentComponent"></component>
</keep-alive>

通过以上方法,可以灵活实现 Vue 中的组件切换需求,根据场景选择动态组件或路由方案。

vue实现组件切换案例

标签: 组件案例
分享给朋友:

相关文章

elementui组件

elementui组件

ElementUI 组件概述 ElementUI 是一套基于 Vue.js 的桌面端组件库,提供丰富的 UI 组件,适用于快速开发中后台系统。以下是其核心组件分类及典型用法。 基础组件 Butto…

vue radio组件实现

vue radio组件实现

Vue Radio 组件实现 在 Vue 中实现 Radio 组件可以通过原生 HTML 的 <input type="radio"> 结合 Vue 的响应式特性来完成。以下是几种常见的实…

vue实现递归组件

vue实现递归组件

递归组件的实现方法 在Vue中实现递归组件主要依靠组件调用自身的能力。以下是几种常见的实现方式: 使用组件name属性 通过组件的name属性实现递归调用是最简单的方式: <templa…

vue组件实现vmodel

vue组件实现vmodel

Vue 组件实现 v-model 在 Vue 中,v-model 是双向数据绑定的语法糖,默认情况下绑定 value 属性并监听 input 事件。在自定义组件中实现 v-model 需要正确配置 p…

vue实现父子组件

vue实现父子组件

Vue 父子组件通信实现方式 1. 父组件向子组件传递数据(Props) 父组件通过 props 向子组件传递数据,子组件通过 props 接收数据。 父组件模板: <template>…

vue实现组件切换

vue实现组件切换

Vue 组件切换的实现方法 在 Vue 中实现组件切换有多种方式,以下是几种常见的方法: 动态组件 使用 Vue 内置的 <component> 元素和 is 属性可以动态切换组件:…