) 或路由 (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> 缓存非活跃组件状态,避免重复渲染。

vue实现组件切换案例

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

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

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

相关文章

vue VUE实现日历组件功能

vue VUE实现日历组件功能

Vue 日历组件实现方法 基础日历结构 使用Vue的模板语法构建日历的HTML结构,通常包含头部(年月显示、切换按钮)和日历表格(星期标题和日期格子)。 <template> <…

vue实现组件缓存

vue实现组件缓存

Vue 组件缓存的实现方法 在 Vue 中实现组件缓存通常使用 <keep-alive> 内置组件,它可以缓存不活动的组件实例,避免重复渲染和销毁。 基本用法 <keep-aliv…

vue实现组件刷新

vue实现组件刷新

强制重新渲染组件 使用 this.$forceUpdate() 方法可以强制 Vue 实例重新渲染,但不会更新子组件。适用于依赖非响应式数据的情况。 methods: { refreshComp…

vue 滑杆组件实现

vue 滑杆组件实现

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

vue实现组件递归

vue实现组件递归

递归组件的实现方法 在Vue中实现递归组件,核心是通过组件在自身模板中调用自身。需要明确递归终止条件以避免无限循环。 定义递归组件 给组件设置name选项,便于在模板中自引用: export de…

VUE网站案例实现

VUE网站案例实现

VUE网站案例实现方法 基础项目搭建 使用Vue CLI创建新项目,安装必要依赖: npm install -g @vue/cli vue create vue-website cd vue-web…