vue 插槽

1、作用:让父组件可以向子组件指定位置插入html结构,也是一种组件间的通信方式,适用于父组件==》子组件

2、分类:默认插槽、具名插槽、作用域插槽

3、使用方式:

(1)、默认插槽

复制代码
父组件中:
    <Category>
      <div>html结构 </div>
    </Category>

子组件中:
<template> <div> <!-- 定义插槽 --> <slot>插槽默认内容...</slot> </div> </template>
复制代码

(2)、具名插槽

复制代码
父组件中:
    <Category>
      <!-- 写法一 -->
      <template slot="center">
        <div>html结构 </div>
      </template>
     
       <!-- 写法二 -->
      <template v-slot:footer>
        <div>html结构 </div>
      </template>
    </Category>

    子组件中:
    <template>
      <div>
        <!-- 定义插槽 -->
        <slot name="center">插槽默认内容...</slot>  
        <slot name="footer">插槽默认内容...</slot>  
      </div>
    </template>
复制代码

3、作用域插槽

(1)理解:数据在组件自身,但是根据数据生成的结构需要组件使用者来决定。(games数据在Category组件中,但是使用数据所遍历出来的结构由App组件决定,比如:elementUI的表格scope)

(2)具体编码:

复制代码
 父组件中:
    <Category>
      <template scope="scopeData">
        <ul>
          <li v-for="g in scopeData.games" :key="g">{{ g }}</li>
        </ul>
      </template>
    </Category>

    <Category>
      <template slot-scope="scopeData">
        <h4 v-for="g in scopeData.games" :key="g">{{ g }}</h4>
      </template>
    </Category>

    子组件中:
    <template>
      <div>
        <!-- 定义插槽 games是子组件data中的数据-->
        <slot :games="games">插槽默认内容...</slot>  
      </div>
    </template>
复制代码

 

posted @   webHYT  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示