vue3中插槽slot的使用

在子组件中写插槽标签slot给slot添加name属性。

子组件中的代码:

<template>
  <div class="navBox">
  	<!-- 菜单栏导航 -->
    <div class="menus"> </div>
    
    <!-- 插槽 -->
    <slot name="headerBox"></slot>
    
    <!-- 用户 -->
    <div class="user"></div>
  </div>
<style>
.navBox{
	display:flex
}
</style>
<template>     

vue3 中插槽的使用,需要用template包裹插槽里的内容,#+ 插槽定义时的name的值。
写法

<template #headerBox></template>

插槽中可以填充任何模板代码,如 HTML、组件等,填充的内容会替换子组件的slot标签。
这里是用的引入的topSearchBox组件。在插槽里的组件渲染出来是headerBox的一个子元素和menu user是同一层级。

在父组件中的代码

<template>
  <div class="home">
  <!-- 导航条 -->
  <div class="headerBox">
  
    <indexHeader>
     <!-- 子组件中预留的插槽 -->
       <template #headerBox>
         <topSearchBox></topSearchBox>
       </template>
     </indexHeader>
  </div>
  
  <!-- 内容 -->
  <div class="body"> </div>
  
  <!-- 底部 -->
  <div class="footer"> </div>
</div>
<template> 
<script>
import { defineComponent, defineAsyncComponent, reactive, onMounted, toRefs } from 'vue'
const indexHeader = defineAsyncComponent(() => import('./components/navBar.vue'))
const topSearchBox = defineAsyncComponent(() => import('./components/topSearchBox.vue'))
export default defineComponent({
	components: {
    indexHeader,
    topSearchBox
  },
  setup () {
   }
})
</script>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值