• vue3之插槽


    插槽,顾名思义,就是一个插座,留个空,给你自定义填写一些东西,这个一般是放在组件里面。

    先说最简单的默认插槽吧,直接上代码

    直接一个slot标签,就表示插槽了,如果给slot加上一个name属性,那么就是具名插槽了,下面都有例子,在使用具名插槽时,需要注意语法,就是template v-slot:xxxx ,这个记住就行了。

    稍微麻烦一点的就是作用域插槽了,因为父子组件的作用域是区分开的,如果在父组件中引入了子组件,然后插槽里面需要使用子组件里面的数据,这时候就有问题了,此时作用于插槽就排上用场了,其实这个做法也是跟具名插槽一个套路,就是给slot标签上添加自定义的属性,用来传递数据。请看下面的例子

    下面说明一下:

    子组件用插槽的时候,用了两种,一是默认的插槽,二是具名插槽

    看在父组件中使用的时候,前面v-slot:xxx这个就是具名插槽的写法,后面的等于多少就是相当于自定义的一个变量来接收传递过来的数据,这个例子中使用了test和testData两个变量,然后下面使用的时候呢,就是test.item,注意,这个item就是子组件定义的字段名,这个对应上就行了。这里如果不想在父组件中自定义字段,那么可以使用结构来获取传递的参数。

    简写,v-slot可以简写成#

    // 子组件,SlotTemp.vue
    <template>
      <div class="slot-temp">
        <div v-for="val in pop" :key="val.name">
          <slot :item="val"></slot>
          <slot name="header" :itm="val"></slot>
          <slot name="bottom" :item="val"></slot>
        </div>
      </div>
    </template>
    
    <script>
    export default {
      name: "SlotTemp",
      setup() {
        return {
          pop: [
            {
              name: "小明",
              age: 12,
            },
            {
              name: "小米",
              age: 13,
            },
            {
              name: "小猪",
              age: 25,
            },
          ],
        };
      },
    };
    </script>
    
    <style lang="scss" scoped>
    </style>
    // 父组件 Index.vue
    <
    SlotTemp> <template v-slot:default="test"> <span>{{ test.item }}</span> </template> <template v-slot:header="test1"> <span>{{ test1.itm }}---haha</span> </template> <template v-slot:bottom="{item}"> <span>{{ item.name }}---eee</span> </template> </SlotTemp>
  • 相关阅读:
    英国黑客试图以10万美元勒索苹果
    暗网现大量智能门锁密码,物联网黑客攻击已成常态
    黑客安全专家郭盛华:逃避僵尸网络恶意软件攻击的13种方法
    前端好网站汇总
    中国标准时间转换
    前端各种安装总结
    vue项目如何调用高德地图
    js访问jsion数据动态显示在html页面
    Excel删除重复数据及用公式筛选重复项并标记颜色突出显示
    excel的公式中同一行的一个单元格只能被引用一次
  • 原文地址:https://www.cnblogs.com/pingming/p/14850439.html
Copyright © 2020-2023  润新知