当前位置: 代码网 > it编程>编程语言>Javascript > vue实现组件切换效果的三种功能

vue实现组件切换效果的三种功能

2024年11月25日 Javascript 我要评论
一、使用条件渲染 (v-if)<template> <div> <button @click="currentview = 'componenta'"

一、使用条件渲染 (v-if)

<template>
    <div>
        <button @click="currentview = 'componenta'">show component a</button>
        <button @click="currentview = 'componentb'">show component b</button>
        <component-a v-if="currentview === 'componenta'"></component-a>
        <component-b v-if="currentview === 'componentb'"></component-b>
    </div>
</template>
<script>
import componenta from './componenta.vue';
import componentb from './componentb.vue';
export default {
    data() {
        return {
            currentview: 'componenta'
        };
    },
    components: {
        componenta,
        componentb
    }
};
</script>

二、使用动态组件 (component)

<template>
    <div>
        <button @click="currentview = 'componenta'">show component a</button>
 
        <button @click="currentview = 'componentb'">show component b</button>
 
        <component :is="currentview"></component>
    </div>
</template>
 
<script>
import componenta from './componenta.vue';
 
import componentb from './componentb.vue';
 
export default {
    data() {
        return {
            currentview: 'componenta'
        };
    },
 
    components: {
        componenta,
 
        componentb
    }
};
</script>

 三、点击按钮切换组件

<template>
  <div>
    <button @click="togglecomponent">切换组件</button>
    <div v-if="showcomponent">
      <componenta />
    </div>
    <div v-else>
      <componentb />
    </div>
  </div>
</template>
 
<script>
import componenta from './componenta.vue'
import componentb from './componentb.vue'
 
export default {
  data() {
    return {
      showcomponent: true
    }
  },
  methods: {
    togglecomponent() {
      this.showcomponent = !this.showcomponent
    }
  },
  components: {
    componenta,
    componentb
  }
}
</script>
<template>
  <div>
    <button @click="togglecomponent">切换组件</button>
    <transition name="fade">
      <component :is="currentcomponent" />
    </transition>
  </div>
</template>
 
<script>
import componenta from './componenta.vue'
import componentb from './componentb.vue'
 
export default {
  data() {
    return {
      currentcomponent: 'componenta'
    }
  },
  methods: {
    togglecomponent() {
      this.currentcomponent = this.currentcomponent === 'componenta' ? 'componentb' : 'componenta'
    }
  },
  components: {
    componenta,
    componentb
  }
}
</script>
 
<style>
.fade-enter-active,
.fade-leave-active {
  transition: opacity 0.5s;
}
 
.fade-enter,
.fade-leave-to {
  opacity: 0;
}
</style>

到此这篇关于vue实现组件切换效果的三种功能的文章就介绍到这了,更多相关vue组件切换内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com