Vue 3插槽

  • Vue 3中的插槽(Slots)是一种强大的模式,用于创建可复用的组件,它允许你将模板插入到组件内部,同时保持组件的封装性和可重用性。在Vue 3中,插槽的使用变得更加灵活和强大。

基本插槽

  1. 默认插槽 :
    在子组件中,使用<slot>标签定义一个插槽。父组件中的任何内容都将替换这个<slot>标签。
<!-- 子组件 -->
<template>
  <div>
    <slot></slot> <!-- 默认插槽 -->
  </div>
</template>
<!-- 父组件 -->
<template>
  <ChildComponent>
    这里的内容会显示在子组件的插槽中。
  </ChildComponent>
</template>

具名插槽

  1. 定义具名插槽 :
    使用name属性在子组件中定义多个插槽。
<!-- 子组件 -->
<template>
  <div>
    <slot name="header"></slot> <!-- 具名插槽 -->
    <slot></slot> <!-- 默认插槽 -->
    <slot name="footer"></slot> <!-- 另一个具名插槽 -->
  </div>
</template>
  1. 使用具名插槽 :
    父组件使用v-slot指令指定要填充的插槽。
<!-- 父组件 -->
<template>
  <ChildComponent>
    <template v-slot:header>
      这里是头部内容。
    </template>

    这里是默认插槽的内容。

    <template v-slot:footer>
      这里是底部内容。
    </template>
  </ChildComponent>
</template>

作用域插槽

  1. 定义作用域插槽 :
    子组件可以通过作用域插槽向父组件传递数据。
<!-- 子组件 -->
<template>
  <div>
    <slot name="item" v-for="item in items" :item="item"></slot>
  </div>
</template>
  1. 使用作用域插槽 :
    父组件可以使用这些数据来定制插槽的内容。
<!-- 父组件 -->
<template>
  <ChildComponent>
    <template v-slot:item="slotProps">
      <div>{
  { slotProps.item.name }}</div>
    </template>
  </ChildComponent>
</template>

插槽的默认内容

  1. 提供默认内容 :
    在子组件的插槽中可以定义默认内容。如果父组件没有提供内容,将显示默认内容。
<!-- 子组件 -->
<template>
  <div>
    <slot>默认内容</slot>
  </div>
</template>

注意事项

  • 插槽内容是在父组件中编译的,而不是在子组件中。
  • 作用域插槽可以让父组件访问子组件中的数据。
  • 使用插槽时,遵循单向数据流的原则,避免直接修改子组件传递给父组件的数据。

插槽是Vue组件系统中一个非常强大的特性,它提供了一种灵活的方式来创建高度定制的组件,同时保持组件逻辑的封装和可重用性。

相关推荐

  1. Vue 3

    2023-12-30 16:48:05       65 阅读
  2. Vue3 Slot

    2023-12-30 16:48:05       39 阅读
  3. Vue2/Vue3-(全)

    2023-12-30 16:48:05       58 阅读
  4. vue3中element Plus

    2023-12-30 16:48:05       31 阅读
  5. vue3中作用域

    2023-12-30 16:48:05       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-30 16:48:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-30 16:48:05       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-30 16:48:05       82 阅读
  4. Python语言-面向对象

    2023-12-30 16:48:05       91 阅读

热门阅读

  1. 【PHP】Guzzle 请求方法类封装

    2023-12-30 16:48:05       60 阅读
  2. vue3-回顾之,状态管理神器 大菠萝- pinia

    2023-12-30 16:48:05       56 阅读
  3. CSS学习之-02

    2023-12-30 16:48:05       60 阅读
  4. c++:new和delete的运算符重载

    2023-12-30 16:48:05       57 阅读
  5. k8s报错处理

    2023-12-30 16:48:05       55 阅读
  6. 212. Word Search II

    2023-12-30 16:48:05       56 阅读
  7. 深入浅出理解Web认证:Session、Cookie与Token

    2023-12-30 16:48:05       58 阅读
  8. 二、计算机软件及其使用-文字处理软件 Word 2016

    2023-12-30 16:48:05       64 阅读
  9. Windows自动化之UIautomation(一)

    2023-12-30 16:48:05       49 阅读
  10. 前端网络面试:浏览器输入地址后发生了什么?

    2023-12-30 16:48:05       55 阅读
  11. C语言计算三阶行列式

    2023-12-30 16:48:05       66 阅读