vue插槽的使用方法

slot(默认插槽)

子:dialog.vue
<template>
  <div>
  	<p>默认插槽</p>
	// 注意这里放了一个默认插槽坑位
 	<slot></slot>
  </div>
</template>

父:
<template>
  <div class="slot">
    <Dialog>
      // 这里会替换到<slot></slot>的位置处
      <div class="slot-body">前端cv</div>
    </Dialog>
  </div>
</template>

name slot(具名插槽)
vue2.6.0以下版本的书写方式-------- slot=“插槽名”
vue2.6.0以上版本书写方式--------- v-slot:插槽名
vue2.6.0以上版本的书写语法糖--------- #插槽名

子:dialog.vue
<template>
  <div>
      <!-- 注意这里,没有传title属性,时候通过插槽进行内容承接 -->
      <slot name="title"></slot>
        <!-- 声明main部分 -->
       <slot name="main"></slot>
    </div>
  </div>
</template>

父:
<template>
  <div class="slot">
    <Dialog>
    //  <template slot="title">
   //    <div class="dialog-title">具名插槽</div>
   //  </template>
   //  <template v-slot:title>
   //   <div class="dialog-title">具名插槽</div>
  //  </template>
       <template #title>
        <div class="dialog-title">具名插槽</div>
      </template>
      <template v-slot:main>
        <div class="slot-body">前端cv</div>
      </template>
    </Dialog>
  </div>
</template>

scope slot(作用域插槽)
让插槽内容能够访问子组件中才有的数据是很有用的,这也是作用域插槽的意义所在
vue2.6.0以下版本的书写方式 ----- slot=“插槽名” slot-scope=“{参数}”
vue2.6.0以上版本书写方式 ----- v-slot:插槽名=“{参数}”
vue2.6.0以上版本的书写语法糖 ----- #插槽名=“{参数}”

子:
<template>
  <div>
      <!-- 注意这里,通过绑定userInfo外部可以进行使用 -->
      <slot name="title" :userInfo="userInfo"></slot>
      <slot name="main" :userInfo="userInfo"></slot>
    </div>
  </div>
</template>
<script>
	let userInfo ={
 		name:'作用域插槽子元素'
	}
</script>

父:
<template>
  <div class="slot">
    <Dialog>
      <template v-slot:main="{ userInfo }">
        <!-- 注意这里userInfo是Dialog组件内部的数据 -->
        <div>你好{{ userInfo.name }}</div>
      </template>
     //  <template #main="{ userInfo }">
     //   <!-- 注意这里userInfo是Dialog组件内部的数据 -->
     //   <div>你好{{ userInfo.name }}</div>
    //  </template>
    //  <template slot="main" slot-scope="{ userInfo }">
     //   <!-- 注意这里userInfo是Dialog组件内部的数据 -->
     //   <div>你好{{ userInfo.name }}</div>
    //  </template>
    </Dialog>
  </div>
</template>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值