• Vue——组件


    组件组件的出现,就是为了拆分Vue实例的代码量的,能够让我们以不同的组件,来划分不同的功能模块,将来我们需要什么的功能,就可以去调用对应的组件即可!

    ------------------------------------------------------

    模块化:是从代码逻辑的角度进行划分的,方便代码分层的开发,保证每个功能模块的只能单一

    组件化:是从 UI 界面的角度进行划分的,前端的组件化,方便 UI 组建的重用

     

    创建组件的方式 1

     

     

    创建组件的方式  2

     

    创建组件的方式 3

     

     

    定义组件中的data

    为什么组件中的 data 要定义为一个 function 

    先设定一个环境:一个计数器,点击一次加 1 

     这样看似没有什么问题,可是如果情况是这样的话呢

    就会出现公用全局的数据 

    所以我们要把 data 定义为一个 function 然后再内部 return 一个对象出来

    这样才能保证每一个实例之间的数据都是独有的

    这样就不会出现数据共享的情况了

    实现组件切换方式 1 

    有一个劣势就是如果有三个组件需要切换就没法实现

    因为本切换方式是运用了 true 和 false 来控制隐藏显示,只有两种方式

    实现组件切换方式 2

    最后我们来为组件切换添加上动画

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>Document</title>
      <script src="./lib/vue-2.4.0.js"></script>
      <style>
        .v-enter,
        .v-leave-to {
          opacity: 0;
          transform: translateX(150px);
        }
    
        .v-enter-active,
        .v-leave-active {
          transition: all 0.5s ease;
        }
      </style>
    </head>
    
    <body>
      <div id="app">
        <a href="" @click.prevent="comName='login'">登录</a>
        <a href="" @click.prevent="comName='register'">注册</a>
        <a href="" @click.prevent="comName='Tourist'">游客</a>
    
        <!-- 通过 mode 属性,设置组件切换时候的 模式 -->
        <!-- out-in 设置先出去后进来
             in-out 设置先进来后出去
        -->
        <transition mode="out-in">
          <component :is="comName"></component>
        </transition>
    
      </div>
    
      <script>
        // 组件名称是 字符串
        Vue.component('login', {
          template: '<h3>登录组件</h3>'
        })
    
        Vue.component('register', {
          template: '<h3>注册组件</h3>'
        })
    
        Vue.component('Tourist', {
          template: '<h3>游客组件</h3>'
        })
        // 创建 Vue 实例,得到 ViewModel
        var vm = new Vue({
          el: '#app',
          data: {
            comName: 'login' // 当前 component 中的 :is 绑定的组件的名称
          },
          methods: {}
        });
      </script>
    </body>
    
    </html>
  • 相关阅读:
    事务一致性
    面试汇总
    什么是时间复杂度?
    语言为什么都要实例化后才能用 ?实例化后这里东西是放在堆里面还是栈里面?
    LRU 算法——简单的淘汰算法
    Redis为什么可以做到10万的QPS?
    Redis基础
    Redis基于Set如何实现用户关注模型?
    资深技术Leader曹乐:如何成为技术大牛
    对MySQL查询结果进行替换
  • 原文地址:https://www.cnblogs.com/yangpeixian/p/11739623.html
Copyright © 2020-2023  润新知