Vue <transition> 多个组件的过渡案例

<!-- Vue <transition> 多个组件的过渡案例 -->
<!--
多个元素之间的过渡,使用key属性来实现
多个组件之间的过渡,使用动态组件来实现
-->
<template>
  <div class="page">
    <div>
      <!--
      在<input>上设置id属性
      在<label>上设置for属性
      让 id属性的值 = for属性的值,就可以实现radio的点击联动效果
      这里注意:必须是<label>上的for属性,其他元素不好使
      -->
      <input id="a" type="radio" v-model="view" value="componentA"><label for="a">a</label>
      <input id="b" type="radio" v-model="view" value="componentB"><label for="b">b</label>
    </div>
    <transition name="component-fade" mode="out-in">
      <!--
      动态组件
      is属性的值为组件名
      -->
      <component :is="view"></component>
    </transition>
  </div>
</template>

<script>
  /*
  * 导入componentA和componentB组件
  * 注意:
  *   @ 代表根元素src
  * */
  import componentA from '@/components/componentA.vue'
  import componentB from '@/components/componentB.vue'
  export default {
    name: 'HelloWorld',
    data() {
      return {
        view: 'componentA'
      }
    },
    components: {
      componentA,
      componentB
    },
    computed: {},
    methods: {}
  }
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped lang="less">
.component-fade-enter-active, .component-fade-leave-active {
  transition: opacity 0.3s ease;
}
.component-fade-enter, .component-fade-leave-to {
  opacity: 0;
}
</style>
<template>
    <div>
      <h1>这是组件A</h1>
    </div>
</template>

<script>
    export default {
        name: "componentA"
    }
</script>

<style scoped>

</style>
<template>
    <div>
      <h1>这是组件B</h1>
    </div>
</template>

<script>
    export default {
        name: "componentB"
    }
</script>

<style scoped>

</style>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值