) 或路由 (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 组件实现方法 单文件组件 (SFC) 使用 .vue 文件格式,包含模板、脚本和样式三部分: <template> <div class="example">{{…

vue实现下拉刷新组件

vue实现下拉刷新组件

Vue 下拉刷新组件实现 核心思路 通过监听 touch 事件计算滑动距离,结合 CSS 过渡动画实现下拉效果,触发刷新回调。 基础实现步骤 监听 touch 事件 在组件 mounted 阶段绑定…

vue实现折叠组件

vue实现折叠组件

实现折叠组件的基本思路 在Vue中实现折叠组件通常需要利用动态绑定和条件渲染。核心是通过控制一个布尔值状态来决定内容是否显示,并添加过渡动画提升用户体验。 基础实现方法 使用v-show或v-if控…

vue table组件实现

vue table组件实现

Vue 表格组件实现方案 基础表格实现 使用<table>标签结合v-for指令渲染数据是最简单的实现方式: <template> <table> &…

react如何删除组件

react如何删除组件

删除 React 组件的几种方法 条件渲染法 通过状态控制组件是否渲染。当状态为 false 时,组件会被移除: const [showComponent, setShowComponent…

vue实现附件组件

vue实现附件组件

Vue 实现附件组件的方法 基础组件结构 使用 Vue 的单文件组件(SFC)方式创建一个基础的附件上传组件。需要包含文件选择、预览、上传和删除功能。 <template> <…