Vue2插槽

插槽

  • 默认插槽
  • 具名插槽
  • 作用域插槽

1. 默认插槽

作用:让组件内的结构或者内容可以支持自定义

**语法:在组件内使用**占位,使用组件时在标签内部传入结构替换slot

在这里插入图片描述

通过插槽完成了内容的定制,传什么显示什么, 但是如果不传,则是空白,也能给插槽设置默认显示内容,如果没传就显示默认内容,传了就显示传递的内容

**语法:**直接在 标签内,放置内容, 就是默认显示内容

在这里插入图片描述

在这里插入图片描述

2. 具名插槽

具名插槽顾名思义就是有名字的插槽

一个组件内有如果多处结构,需要外部传入标签,这是默认插槽就只能定制一个位置,所有的默认插槽都会显示同样的内容,使用具名插槽就可以解决这一问题

语法:

  • <slot name="名字"></slot>,用name区分不同插槽的名字
  • 使用的使用<template></template>配合v-slot:名字(v-slot:简写:#名字)来使用

在这里插入图片描述

3. 作用域插槽

定义slot 插槽的同时, 是可以传值的。给 插槽 上可以 绑定数据,将来 使用组件时可以用

eg:

​ 在组件内插槽中的数据要删除数据,可以将id传过来

用法:

  1. 给 slot 标签, 以 添加属性的方式传值

    <slot :id="item.id" msg="测试文本"></slot>
    
  2. 所有添加的属性, 都会被收集到一个对象中

    { id: 3, msg: '测试文本' }
    
  3. 在template中, 通过 #插槽名= "obj" 接收,默认插槽名为 default

    <MyTable :list="list">
        <!-- 支持解构赋值
    		 #default="{id}"
    	-->
      <template #default="obj">
        <button @click="del(obj.id)">删除</button>
      </template>
    </MyTable>
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恸426

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值