• Element-ui 的 slot 关系理解


    摘要: 在看一些前端用例时,看到 slot-scope 属性,早在了解学习的时候,对 slot 还是可以理解的,结果碰上 slot-scope 感觉理解方式就不对了,所以重新查阅学习了一下

    首先 slot: 父组件写在子组件标签内的内容,替换了子组件中slot标签

     1 //father
     2 <template>
     3   <div class="father">
     4     <child>
     5       <div>标签内的内容</div>      //写在子组件标签内,会替换子组件的slot标签.....这里可以是纯文字,可以是一个小标签,也可以是一个<template>
     6     </child>
     7   </div>
     8 <template>
     9 
    10 //child
    11 <template>
    12   <div class="child">
    13     <slot></slot>      //插槽,子组件预留的空位,由父组件提供内容        
    14   </div>
    15 <template>
    16 
    17 //合成后
    18 <div class="father">  //父组件
    19   <div class="child">  //子组件
    20     <div>标签内的内容</div>   //替换了slot
    21   </div>
    22 </div>

    上述内容就是插槽,一种子组件预留空间的方法.也可以准备多个插槽:

    //指定要插入的插槽
    <div slot="slot1">标签内的内容1</div>
    <div slot="slot2">标签内的内容2</div>
    
    //为插槽命名
    <slot name="slot1"></slot>
    <slot name="slot2"></slot>

    slot-scope 相对复杂一点,它是用于数据传递的,意义上就像props

    先提供一个场景说明:

    老师A需要做一个调查统计分析的报告(A:父组件,报告:展示部分)

    留了一页空白让学生B去做表格和统计了(B:子组件,表格统计:展示部分)

    要求,在表格最后一行留空,A要写分析结论(留空:插槽,分析结论:标签内的内容)

    同时,A还要B提供统计结果才能写结论(统计结果:子组件返回的数据)

    //父组件
    <template>
      <div class="father">          //老师A 报告
        <child>                      //学生B 表格
            <div slot-scope="response" > //老师A 结论
              统计结果:{{response.data}}
            </div>
        </child>
      </div>
    </template>
    
    //子组件
    <template>
      <div class="child">          //学生B 表格
         <slot :data="result"></slot>   //老师A 结论
      </div>
    </template>

    解释;把slot想象成孙组件,子组件可以任意传数据给孙组件

    这里孙组件不用再一一写props,因为子组件slot会把后面所有数据打包成一个对象给孙组件,孙组件用slot-scope为这整个对象起名

    <div slot-scope="xxx">
    {{xxx.info.name}}的学校是{{xxx.school.name}}
    </div>
    
    <slot :info="person" :school="school"></slot>
  • 相关阅读:
    C语言inline函数(转)
    C++ 输入ctrl+z 不能再使用cin的问题
    VMware无法识别USB设备
    python manage.py 命令
    求二叉树的最小深度
    Vim的分屏功能(转)
    一些Python的惯用法和小技巧:Pythonic
    Docker(十五)-Docker的数据管理(volume/bind mount/tmpfs)
    Docker(十四)-Docker四种网络模式
    Docker(十三)-Docker save and load镜像保存
  • 原文地址:https://www.cnblogs.com/aLandon/p/11592596.html
Copyright © 2020-2023  润新知