首页 > 其他 > 详细

组件切换

时间:2019-11-26 12:58:16      阅读:80      评论:0      收藏:0      [点我收藏+]

一、方式一

<body>
  <div id="app">
    <a href="" @click.prevent="flag=true">登录</a>
    <a href="" @click.prevent="flag=false">注册</a>

    <login v-if="flag"></login>
    <register v-else="flag"></register>

  </div>

  <script>
    Vue.component(login, {
      template: <h3>登录组件</h3>
    })

    Vue.component(register, {
      template: <h3>注册组件</h3>
    })

    // 创建 Vue 实例,得到 ViewModel
    var vm = new Vue({
      el: #app,
      data: {
        flag: false
      },
      methods: {}
    });
  </script>
</body>

 

二、方式二

  Vue提供了 component ,来展示对应名称的组件 
    component 是一个占位符, :is 属性,可以用来指定要展示的组件的名称 
 
<body>
  <div id="app">
    <a href="" @click.prevent="comName=‘login‘">登录</a>
    <a href="" @click.prevent="comName=‘register‘">注册</a>

    <!-- Vue提供了 component ,来展示对应名称的组件 -->
    <!-- component 是一个占位符, :is 属性,可以用来指定要展示的组件的名称 -->
    <component :is="comName"></component>

    <!-- 总结:当前学习了几个 Vue 提供的标签了??? -->
    <!-- component,  template,  transition,  transitionGroup  -->

  </div>

  <script>
    // 组件名称是 字符串
    Vue.component(login, {
      template: <h3>登录组件</h3>
    })

    Vue.component(register, {
      template: <h3>注册组件</h3>
    })

    // 创建 Vue 实例,得到 ViewModel
    var vm = new Vue({
      el: #app,
      data: {
        comName: login // 当前 component 中的 :is 绑定的组件的名称
      },
      methods: {}
    });
  </script>
</body>

 

三、切换动画

 

通过 mode 属性,设置组件切换时候的 模式
 

 

<style>
    .v-enter,
    .v-leave-to {
      opacity: 0;
      transform: translateX(150px);
    }

    .v-enter-active,
    .v-leave-active {
      transition: all 0.5s ease;
    }
  </style>
<body>
  <div id="app">
    <a href="" @click.prevent="comName=‘login‘">登录</a>
    <a href="" @click.prevent="comName=‘register‘">注册</a>

    <!-- 通过 mode 属性,设置组件切换时候的 模式 -->
    <transition mode="out-in">
      <component :is="comName"></component>
    </transition>

  </div>

  <script>
    // 组件名称是 字符串
    Vue.component(login, {
      template: <h3>登录组件</h3>
    })

    Vue.component(register, {
      template: <h3>注册组件</h3>
    })

    // 创建 Vue 实例,得到 ViewModel
    var vm = new Vue({
      el: #app,
      data: {
        comName: login // 当前 component 中的 :is 绑定的组件的名称
      },
      methods: {}
    });
  </script>
</body>

 

 

组件切换

原文:https://www.cnblogs.com/wangyuxue/p/11934264.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!