【Vue2.0】—默认插槽、具名插槽、作用域插槽(二十四)

简介: 【Vue2.0】—默认插槽、具名插槽、作用域插槽(二十四)


默认插槽、具名插槽

Cateory.vue文件

<template>
  <div class="cateory">
    <h3>{{title}}分类</h3>
    <!-- 定义一个插槽,等着组件的使用者进行填充 -->
    <slot name="center"> 我是一个默认值,当使用者没有传递具体结构的时候,我就会显示1</slot>
    <slot name="bottom"> 我是一个默认值,当使用者没有传递具体结构的时候,我就会显示2</slot>
  </div>
</template>
<script>
  export default {
    name: 'Cateory',
    props: ['title'],
  }
</script>
<style>
  .cateory {
    background-color: skyblue;
    width: 200px;
    height: 300px;
    float: left;
  }
  .cateory:nth-child(2) {
    margin: 0 50px;
  }
  h3 {
    text-align: center;
    background-color: orange;
  }
  ul li {
    list-style-type: none;
  }
</style>

App.vue文件

<template>
  <div class="container">
    <Cateory title="美食">
      <img slot="center"
        src="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F01bddd5e26a262a801216518af424f.jpg%402o.jpg&refer=http%3A%2F%2Fimg.zcool.cn&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1640156153&t=2c7b79467b177bea9e440f6639767be5"
        alt="">
      <a slot="bottom" href="#">点我可以跳转</a>
    </Cateory>
    <Cateory title="游戏">
      <ul slot="center">
        <li v-for="(g,index)  in games" :key="index">{{g}}</li>
      </ul>
      <!-- 注意:只有遇到template时,才可以使用v-slot这种写法 -->
      <template v-slot:bottom>
        <div class="footer">
          <a href="#"> 一起来玩王者吗</a></p>
          <a href="#"> 一起来玩LOL吗</a></p>
          <a href="#"> 一起来玩吃鸡吗</a></p>
        </div>
      </template>
    </Cateory>
    <Cateory title="电影" :listData="films">
      <img slot="center" class="cake"
        src="http://gimg2.baidu.com/image_search/src=http%3A%2F%2Fup.enterdesk.com%2Fedpic_360_360%2F69%2F17%2Ff2%2F6917f22462051746bd24feb853631904.jpg&refer=http%3A%2F%2Fup.enterdesk.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1640156853&t=d9e20e3e8709b53daba8f576454a1826"
        alt="">
      <a slot="bottom" href="#">小黑的日常生活</a>
    </Cateory>
  </div>
</template>
<script>
  import Cateory from './components/Cateory.vue'
  export default {
    name: 'App',
    components: {
      Cateory
    },
    data() {
      return {
        food: ['火锅', '小龙虾', '牛排'],
        games: ['王者荣耀', 'LOL', '吃鸡'],
        films: ['《门锁》', '《最好的我们》', '《新年好》']
      }
    }
  }
</script>
<style lang="css">
  img,
  .cake {
    width: 200px;
    height: 200px;
  }
</style>

作用域插槽

理解:数据在组件的自身,但根据数据生成的结构需要组件的使用者来决定,(games数据在Category组件中使用,但使用数据所遍历出来的结构由APP组件决定)

Cateory.vue文件

App.vue文件


相关文章
|
4月前
|
JavaScript
Vue学习之--------插槽【默认插槽、具名插槽、作用域插槽】(2022/8/30)
这篇文章详细介绍了Vue中的插槽(Slots)概念,包括默认插槽、具名插槽和作用域插槽的用法。通过实际的代码示例和项目结构,文章展示了如何在组件中定义和使用插槽,以及如何通过插槽向组件传递内容和数据。
Vue学习之--------插槽【默认插槽、具名插槽、作用域插槽】(2022/8/30)
|
1月前
|
JavaScript
如何在 Vue 中使用具名插槽
【10月更文挑战第25天】通过使用具名插槽,你可以更好地组织和定制组件的模板结构,使组件更具灵活性和可复用性。同时,具名插槽也有助于提高代码的可读性和可维护性。
50 2
|
4月前
|
JavaScript
Vue学习之--------插槽【默认插槽、具名插槽、作用域插槽】
这篇文章详细介绍了Vue.js中的插槽概念,包括默认插槽、具名插槽和作用域插槽的使用方式和实际应用示例,通过代码演示了如何在组件中定义和使用插槽来实现内容的灵活替换和展示。
Vue学习之--------插槽【默认插槽、具名插槽、作用域插槽】
|
5月前
vue2 插槽(默认插槽 slot 、具名插槽 v-slot 、作用域插槽 slot-scope -- 插槽传值 )
vue2 插槽(默认插槽 slot 、具名插槽 v-slot 、作用域插槽 slot-scope -- 插槽传值 )
1127 1
|
7月前
|
JavaScript 开发者
vue3中插槽的使用与用处
vue3中插槽的使用与用处
122 0
|
前端开发
前端学习笔记202304学习笔记第十五天-vue3.0-解构具名插槽的Prop
前端学习笔记202304学习笔记第十五天-vue3.0-解构具名插槽的Prop
65 0
|
JavaScript
【Vue】—解构插槽 Prop以及具名插槽的缩写
【Vue】—解构插槽 Prop以及具名插槽的缩写
|
小程序 JavaScript
微信小程序-多个插槽-具名插槽
如何使用多个插槽 • 如果想要使用多插槽,那么就必须通过 name 属性给每个插槽起一个名称 • 如果想要使用多插槽,那么在添加组件到插槽上的时候,就需要通过 slot="插槽名称" 告诉系统,组件需要添加到哪一个插槽上 • 还有必须在插槽对应的组件的JS文件中,通过 options 中的 multipleSlots: true, 来告诉系统需要开启多插槽
209 0
|
JavaScript
一篇文章带你了解vue 中插槽的作用
一篇文章带你了解vue 中插槽的作用
66 0
|
JavaScript
Vue —— 进阶插槽(slot)(默认插槽、具名插槽和作用域插槽)
Vue —— 进阶插槽(slot)(默认插槽、具名插槽和作用域插槽)
127 0