Vue2插槽的简单使用示例

插槽-slot

  1. 基本使用
  2. 作用域插槽
  3. 具名插槽

1. 基本使用

比较简单, 比如:

<template>

        <a :href=”url”>

                <slot :slotData=”website”>xxxx</slot>

        </a>

</template>

父页面使用--不用获取slotdemo组件里面的数据的时候:

<slotDemo :url="xxx”>

        xxxxx

</slotDemo>

2. 作用域插槽

1) scope 只可以用于 <template> 元素,其它和 slot-scope 都相同(已被移除)。
2) slot-scope 用于将元素或组件表示为作用域插槽,可以接收传递给插槽的 prop 。(在 2.5.0+ 中替代了 scope,自 2.6.0 起被废弃)
3) 推荐使用v-slot,默认插槽只传递参数v-slot="xxx"

3. 具名插槽

1) 用于 <template> 元素, v-slot:名字="xxx"

2) 或者#名字

使用示例:

子页面:

<template>
  <div>
    <header>
      <slot name="header">具名插槽-header</slot>
    </header>
    <main>
      <slot :slotData="slotData">
        作用域插槽 :slotData="slotData"方便父页面获取插槽数据
      </slot>
    </main>
    <footer>
      <slot name="footer">具名插槽-footer</slot>
    </footer>
  </div>
</template>

<script>
export default {
  data () {
    return {
      slotData: {
        title: 'title-aaa'
      }
    }
  }
}
</script>

父页面:

<template>
  <div class="a-box">
    <NameSlot>
      <!-- 具名插槽 -->
      <template v-slot:header>
        <div>头部---</div>
      </template>
      <!--  作用域插槽: 方便获取插槽的数据 -->
      <template v-slot="slotProps">
        <div>{{ slotProps.slotData.title }}</div>
      </template>
      <!-- 具名插槽 -->
      <template #footer>
        <div>底部----</div>
      </template>
    </NameSlot>
  </div>
</template>

<script>
import NameSlot from './Slot1'

export default {
  components: {
    NameSlot
  }
}
</script>

<style lang="css" scoped>
.a-box {
  width: 300px;
  height: 300px;
  background-color: red;
  font-size: 33px;
}
</style>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 2中,匿名插槽是通过在组件中使用`<slot>`标签来实现的。匿名插槽可以用于提供默认内容,当使用者没有传递具体结构时,这些默认内容会被显示出来。例如,在一个名为NiMing.vue的组件中,可以这样定义一个匿名插槽: ``` <template> <div class="category"> <h3>{{ title }}分类</h3> <slot>我是一些默认值,当使用者没有传递具体结构时,我会出现</slot> </div> </template> ``` 在这个例子中,如果在使用NiMing组件时未传递具体的插槽内容,那么默认值"我是一些默认值,当使用者没有传递具体结构时,我会出现"就会被显示出来。你可以根据需要在组件中定义多个匿名插槽,并在使用组件时根据插槽名称来传递具体的内容。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [vue2插槽使用-- 默认插槽、具名插槽、作用域插槽](https://blog.csdn.net/m0_74767583/article/details/129288115)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [vue3的插槽匿名插槽、具名插槽、作用域插槽、动态插槽](https://blog.csdn.net/weixin_39838846/article/details/125967376)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值