Vue中v-slot、插槽详解(看完这篇插槽对你来说很简单)

本文通过实例详细介绍了Vue.js中插槽的使用,包括默认插槽、具名插槽、作用域插槽和动态插槽名,以及具名插槽的缩写形式。通过案例展示了如何在组件中插入自定义内容,如何传递数据以及如何根据需求动态改变插槽内容。同时,文章还提到了用于开发者辅助的DivSidecar工具,提供GitHub加速、DNS优选等功能。
摘要由CSDN通过智能技术生成

不使用插槽

领导让小睡做一个小样式,那就用这个小案例作为引入,
看看在不使用插槽的时候、使用插槽时候的区别。下次就知道什么时候使用插槽能更方便了。

在这里插入图片描述
看到上面的样式,首先会想到使用组件,然后再App.vue中把标题和内容数据传给子组件即可。
样式的代码没展示,完整代码在最后

<!-- category组件-->
<template>
 <div class="category">
     <h3>{
  {title}}分类</h3>
      <ul>
        <li v-for="(item,index) in listData" :key="index">{
  {item}}</li>
      </ul>
 </div>
</template>

<script>
export default {
     
  name:'Category',
  //props接收传过来的数据
  props:['listData','title']
}
</script>
<!--App.vue-->
<template>
 <div class="container">
 	<!--将title和listData数据传给子组件,下面展示了两种使用组件方式-->
   <Category title="动漫" :listData="cartoons"></Category>
   <Category title="游戏" :listData="games"/>
   <Category title="电影" :listData="films"/>
 </div>
</template>

<script>
import Category from './components/category.vue'

export default {
     
  name: 'App',
  components: {
     
    Category
  },
  data(){
     
    return{
     
      cartoons:['海贼王','名侦探柯南','一人之下','未闻花名'],
      games:['4399','斗地主','王者荣耀','和平精英'],
      films:['《你好,李焕英》','《夏洛特烦扰》','《你的名字》','《蜘蛛侠》']
    }
  }
}
</script>

运行之后就是上面的样式了。在上面使用了三次组件,三次组件都是做了同样的展示。

默认插槽

有一天,领导找到小睡,说这个动漫分类和电影分类没有吸引力,你要在动漫分类里加上照片
电影分类里加上电影宣传片。

在这里插入图片描述

小睡一听,这还不简单,直接三下五除二在App.vue中改成以下代码。

   <Category title="动漫" :listData="cartoons">
     <img src="https://img2.baidu.com/it/u=4117582627,679171248&fm=253&fmt=auto&app=120&f=JPEG?w=500&h=500" alt="">
   </Category>
   <Category title="游戏" >
   </Category>
   <Category title="电影">
     <video controls src="http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"></video>
   </Category>

小睡一运行,才发现动漫分类和电影分类里没有图片和视频。一问旁边的大佬,才知道原因,原来尽管解析了img标签后,需要把img标签加载到组件中去,但是不知道要把img标签放到哪个位置,所以就干脆不放。 为了解决上面的问题,就要使用插槽slot了。

插槽,我理解就是为在组件里挖一个坑的感觉,让组件使用者知道可以把一些标签填充在里面
[补充]:可以在组件或App.vue中给img标签编写样式
因为解析了img标签后,把img标签填入组件中所以可以在组件或App.vue中给img标签编写样式
后来小睡将代码改成如下

<!--category组件代码-->
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

子时不睡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值