) 或路由 (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. 安装路由:

    vue实现组件切换案例

    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 });

vue实现组件切换案例

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实现组件

vue实现组件

Vue 实现组件的方法 Vue 中实现组件可以通过多种方式,包括全局注册、局部注册、单文件组件(SFC)等。以下是常见的实现方法。 全局注册组件 全局注册的组件可以在任何 Vue 实例或组件中使用。…

react组件如何通讯

react组件如何通讯

React 组件通讯方式 React 组件间的通讯方式主要包括以下几种方法,适用于不同场景下的数据传递和状态管理需求。 父子组件通讯(Props 传递) 父组件通过 props 向子组件传递数据或回…

vue实现水印组件

vue实现水印组件

Vue 水印组件的实现方法 使用Canvas绘制水印 在Vue组件中通过Canvas动态生成水印图案,将其作为背景添加到目标元素上。 <template> <div ref="…

vue 组件实现 遮罩

vue 组件实现 遮罩

Vue 组件实现遮罩层的方法 基础遮罩层实现 创建一个简单的遮罩层组件,使用绝对定位覆盖整个视口。以下是一个基础实现: <template> <div class="mask"…

vue实现组件拖动

vue实现组件拖动

Vue 实现组件拖动的几种方法 使用 HTML5 拖放 API HTML5 原生提供了拖放 API,可以通过 draggable 属性实现基础拖拽功能。在 Vue 中可以通过事件绑定实现交互逻辑。…

vue 滑杆组件实现

vue 滑杆组件实现

实现基础滑杆组件 使用Vue的v-model和原生<input type="range">实现基础功能: <template> <div> <i…