vue插槽

匿名插槽:当组件内一幅幅标签不确定时,在组件内使用<slot><slot/>占位,当使用组件在标签内放入什么内容,在组件内就会替换掉slot标签并显示,在slot标签内放置内容,就会作为默认显示内容显示

子组件:

<template>
  <div>
    性别:<slot></slot>
  </div>
</template>

父组件:

    <h3>匿名插槽</h3>
    <childTemp>
      女
    </childTemp>

具名插槽:

  •  组件内有多处不确定标签时使用,slot占位,给slot加上name属性区分。
  •  父组件内使用时用template标签带上v-slot:name传递内容,可简写成#name。
  •   v-slot:name="自定义变量名"和作用域插槽一起用。

子组件:

<template>
  <div>
    <slot name="up">苹果</slot>
    <slot name="down">apple</slot>
  </div>
</template>

父组件:

    <h3>具名插槽</h3>
    <!-- <h4>旧版本</h4>     -->
    <temp2>
      <template slot="up">
        香蕉
      </template>
      <template slot="down">
        banana
      </template>
      <br>
    </temp2>

    <!-- <h4>新版本</h4> -->
    <temp2>
      <template v-slot:up>
        梨子
      </template>
      <template #down>
       pear
      </template>
    </temp2>

作用域插槽:

  • 在父组件内需要使用子组件的数据时
  • 在子组件的slot标签上绑定属性和子组件内的值,:data=data
  • 父组件中使用template和v-slot="自定义变量名",父组件通过这个自定义变量获取子组件的数据
  • 自定义变量名自动绑定slot标签上所有属性和值

子组件:

<template>
  <div>
    <!-- 旧 -->
    <slot :data=data></slot>
    <!-- 新 -->
    <slot name="song" :data=data></slot>
  </div>
</template>

<script>
export default {
  data() {
    return {
      data: ['海棠酒满', '倾尽天下', '千秋莫负']
    }
  }
}
</script>

父组件:

    <h3>作用域插槽</h3>
    <!-- 旧写法 -->
    <temp3>
      <template slot-scope="user">
        <div v-for="(value,index) in user.data" :key="index">{{value}}</div>
      </template>
    </temp3>
    <!-- 新 -->
    <temp3>
      <!-- 可简写成#song="data" ,这里使用了具名插槽 -->
      <template v-slot:song="data">
        {{ data }}
      </template>
    </temp3>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值