美文网首页
vue3 插槽 slot

vue3 插槽 slot

作者: 暴躁程序员 | 来源:发表于2024-08-26 14:09 被阅读0次

一、默认插槽(最简单的单个插槽)

  1. 在父组件中,定义插槽填充的内容
    默认插槽的两种写法
<template>
  <div>
    <comp>
      <div>I am default slot value</div>
    </comp>
    <comp>
      <template v-slot:default>
        <div>I am default slot value</div>
      </template>
    </comp>
    <comp>
      <template #default>
        <div>I am default slot value</div>
      </template>
    </comp>
  </div>
</template>

<script setup>
import comp from "@/components/comp.vue";
</script>
  1. 在子组件中,定义插槽的位置
    可以定义 no data ,当插槽没有内容时填充展示
<template>
  <div>
   <slot> slot no data show </slot>
  </div>
</template>

二、具名插槽(多个插槽时,按照插槽名字区分插槽)

  1. 在父组件中,定义插槽填充的内容和插槽名字
    注意:v-slot 只能定义在 template 标签上
<template>
  <div>
    <comp>
      <template v-slot:header>
        <p>fill heaer</p>
      </template>
      <template #main>
        <p>fill main (vue3)</p>
      </template>
      <template v-slot:footer>
        <p>fill footer</p>
      </template>
    </comp>
  </div>
</template>

<script setup>
import comp from "@/components/comp.vue";
</script>
  1. 在子组件中,定义插槽的位置,通过 name 属性区分插槽
<template>
  <div>
   <slot name="header"> slot no data show header</slot>
   <slot name="main"> slot no data show main</slot>
   <slot name="footer"> slot no data show footer</slot>
  </div>
</template>

三、作用域插槽(父组件在插槽区域内可以使用 子组件通过插槽传递过来的变量)

父组件和子组件的插槽区域变量只在当前组件内有效,但是可以通过作用域插槽的方式让父组件可以使用子组件的变量

  1. 在父组件中,定义插槽填充的内容和插槽名字,接收参数
    注意:只能在插槽 template 标签区域内使用接收的参数
<template>
  <div>
    <comp>
      <template v-slot:default="{userInfo}">
        <div>{{userInfo.username}}</div>
        <div>{{userInfo.password}}</div>
      </template>
    </comp>
    <comp>
      <template #default="{userInfo}">
        <div>{{userInfo.username}}</div>
        <div>{{userInfo.password}}</div>
      </template>
    </comp>
  </div>
</template>

<script setup>
import comp from "@/components/comp.vue";
</script>
  1. 在子组件中,定义插槽的位置,定义和传递参数
<template>
  <div>
   <slot :userInfo="userInfo"> slot no data show </slot>
  </div>
</template>
<script setup>
import { ref } from 'vue';

const userInfo = ref({
  username: 'alias',
  password: '123456',
})
</script>

相关文章

  • 18、Vue3 作用域插槽

    作用域插槽:让插槽内容能够访问子组件中,vue2中作用域插槽使用slot-scope,vue3中使用v-slot ...

  • vue3-slot-消息框-模态框

    1.前言 1.使用vue3 的slot插槽时,大部分和vue2-slot插槽[https://www.jiansh...

  • 插槽

    默认插槽: 具名插槽:slot name='footer' 作用域插槽:v-slot===slot-scope 默...

  • 2-6 vue 匿名插槽-slot

    匿名插槽-slot Slot插槽 —— 实现内容分发 什么是slot?slot的意思是插槽,其目的在于让组件的可扩...

  • Vue之深入理解插槽—slot, slot-scope, v-s

    Vue 2.6.0 以前Vue 2.6.0 以后具名插槽 slot具名插槽 v-slot作用域插槽 slot-sc...

  • Vue3:Slot 插槽

    1、匿名插槽 1.1 什么是插槽 插槽(Slot)是 vue 为组件的封装者提供的能力。允许开发者在封装组件时,把...

  • 插槽

    插槽的基础使用,

  • 插槽slot

    插槽,占位符slot具名插槽,指定占位符slot、name作用域插槽,子组件占位符向父组件占位符通信。slot、s...

  • vue slot匿名插槽 / 具名插槽 / 作用域插槽

    slot 匿名插槽 slot 具名插槽 应用场景 slot 作用域插槽: 在父组件中可以获得子组件的数据,并在父组...

  • 四。插槽,Attribute 继承

    插槽 在Vue3中,用template标签包裹要填充的内容,v-slot属性也需定义在template标签上,只有...

网友评论

      本文标题:vue3 插槽 slot

      本文链接:https://www.haomeiwen.com/subject/teqakjtx.html