• vue-插槽的基本使用


      之前我们使用的组件他的拓展性是特别差的,因为组件的内部标签是固定写死的,就会导致这个组件的复用性很差,比如一个导航栏组件,他里面的组成部分是根据需求不同而定的,因此里面的标签不能写死,而插槽的出现刚好能解决这个问题,一个组件里面预留几个空间,根据需求往里面填充不同的标签,这就是插槽

      下面我们看下代码:

    <body>
      <div id="app">
        <ccomponent>
          <span>我是第一个插槽</span>
        </ccomponent>
        <ccomponent>
          <button>我是按钮</button>
        </ccomponent>
        <ccomponent></ccomponent>
        <ccomponent>
          <p>2</p>
          <i>3</i>
        </ccomponent>
      </div>
    
    </body>
    <template id="tem">
      <div>
        <span>我是子组件</span>
        <slot>
          <h1>我是默认值</h1>
        </slot>
      </div>
    </template>
    
    <script>
        const ccomponent = {
          //data,props,methods,template,component
          template: '#tem'
        }
        var vm = new Vue({
          el: '#app',
          data: {},
          methods: {},
          components: {
            ccomponent
          }
        });
    </script>

      从上面的代码可以总结3个知识点:

        1. 在模板定义一个插槽,当使用组件时不添加任何标签时,插槽是空的

        2. 要填充插槽,只需要往子组件中插入一个标签即可

        3. 插槽是可以有默认标签的,只需要在<slot></slot>里加标签即可

        4. 当只有一个插槽,但是插了好几个标签,这时候这几个标签会被视为一个整体插入到该插槽中。

      最后再说一下父子组件的关系 和 组件和插槽的关系 的区别所在:

      1. 一般我们会把比较固定的代码封装成一个组件,目的是为了方便最大地复用,比如现在有一个父组件,这个父组件需要一个导航栏组件,那就找一个已经写好的导航栏的子组件插到父组件中;总结就是组件是已经固定套路的代码

      2. 组件和插槽的关系是动态的,因为你不知道组件的布局和元素是什么,这时候我们就不能提前把子组件给写好了,得根据具体情况判断,这种组件和插槽的关系会更灵活,但复用性会低一点。

  • 相关阅读:
    java ---------- API
    java ------- 泛型
    mybatis(输入、输出参数、ResultMap)
    javase参数传递机制(值传递)
    mybatis配置文件(properties、typeAliases、mappers( resource、class、url、package))
    mybatis(Mybatis与hibernate的不同、原始Dao开发、Mapper动态代理开发)
    mybatis入门(介绍、mybatis入门程序(增、删、改、查))
    javase(四舍五入、switch、length、构造器、重载与重写)
    javase(内存中的堆(heap)、栈(stack)和静态存储区)
    Javase(&与&&的区别和联系)
  • 原文地址:https://www.cnblogs.com/ibcdwx/p/14581047.html
Copyright © 2020-2023  润新知