zoukankan      html  css  js  c++  java
  • Vue学习Day03-Vue具名插槽slot(name)和作用域插槽slot(slot-scope)

    以下是学习笔记:

      1.前面学习的默认插槽可以理解为一个默认的坑,没有任何表示,html代码可以往里面"填坑"

      2.具名插槽拥有了name属性,它成为该坑的表示,当往组件里面写得html标签带上slot="具名插槽名"时,这些html代码将有方向性地"填坑"到具有表示name的插槽中.可以说,name属性给不同插槽以标识符

      3.作用域插槽,当插槽拥有了一些属性,而填入坑中的标签想要使用时.可以给这些标签加上slot-scope属性,并将该属性值存放到一个对象obj中,这样可以在标签中以`{{obj.属性名}}`的方式访问到插槽具有的属性(目前还未学习到具体使用场景)

      具名插槽:

    <div id="app">
          <!-- 1.2 想要指定插入指定位置,就得指定一下插入到slot的名字,通过slot属性来指定, 这个slot的值必须和下面slot组件得name值对应上 -->
          <index>
            <h1 slot="header">头部</h1>
            <p slot="footer">底部</p>
          </index>
        </div>
        <script>
          // 1.1. 通过给slot添加name属性,来指定当前slot的名字
          Vue.component('index', {
            template: `
              <div>
                <slot name="header"></slot>
                index
                <slot name="footer"></slot>
              </div>
         `
    })
      ...
    </script>

      作用域插槽:

    <div id="app">
          <!--  -->
          <index>
            <!-- 1.2 给这里需要取出slot中属性值得标签(也就是p)定义一个属性:slot-scope,它的值是一个对象,这个对象中保存的有下面slot中所有得属性 -->
            <p slot-scope="obj">{{obj.company}}版权所有{{obj.title}}</p>
          </index>
        </div>
        <script>
          // 1.1 现在slot组件携带了属性,想把他们取出来怎么办?需要用到作用域插槽
          Vue.component('index', {
            template: `
              <div>
                index
                <slot title="vue学习" company="itcast" $index="111"></slot>
              </div>
            `
          })
          var vm = new Vue({
            el: '#app',
            data: {
    
            }
          })
        </script>
  • 相关阅读:
    斯特林反演入门
    【清华集训2016】如何优雅地求和
    布隆过滤器
    HBase体系结构
    插入排序
    Hive中的文件存储格式
    HDFS的读写流程
    AQS
    Condition接口
    HashMap源码分析
  • 原文地址:https://www.cnblogs.com/zhou-135/p/11592782.html
Copyright © 2011-2022 走看看