VUE之插槽

ops/2025/2/9 4:17:17/

1、默认插槽

<template><div class="father"></div><h3>父组件</h3><div class="content"><Category title="热门游戏列表"><ul><li v-for="g in games" :key="g.id">{{ g.name }}</li></ul></Category><Category title="今日美食城市"><img :src="imgUrl" alt=""></Category><Category title="今日影视推荐"><video :src="videoUrl" controls></video></Category></div>
</template><script lang="ts" name="Father">import Category from './Category.vue'import {ref,reactive} from "vue"let games = reactive([{id:1,name:'英雄联盟'},{id:2,name:'绝地求生'},{id:3,name:'和平精英'},{id:4,name:'王者荣耀'}])let imgUrl = 'https://img2.baidu.com/it/u=3237968337,425972872&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500'let videoUrl = 'http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4'</script><style scoped>
.category {background-color: skyblue;border-radius: 10px;box-shadow: 0 0 10px;padding: 10px;width: 200px;height:300px;
}.content{display: flex;text-align: center;font-size: 18px;font-weight: 800;
}img,video{width: 100%;
}
</style>
<template><div class="category"></div><h2>{{  title }}</h2><slot>默认内容</slot>
</template><script lang="ts" name="Category"></script><style scoped>
.category {background-color: skyblue;border-radius: 10px;box-shadow: 0 0 10px;padding: 10px;width: 200px;height:300px;
}.h2 {background-color: orange;
}
</style>

2、具名插槽

<Category title="热门游戏列表" ><template v-slot:s2><ul><li v-for="g in games" :key="g.id">{{ g.name }}</li></ul></template><!-- <template  v-slot:s1> --><template  #:s1><h2>热门游戏列表</h2></template></Category><template><div class="category"></div><h2>{{  title }}</h2><!-- 具名插槽 --><slot name="s1">默认内容1</slot><slot name="s2">默认内容2</slot>
</template>

3、作用域插槽

<template><div class="father"></div><h3>父组件</h3><div class="content"><Game> <template v-slot="params"><ul><li v-for="g in params.youxi" :key="g.id">{{ g.name }}</li></ul></template></Game><Game><template v-slot="params"><ol><li v-for="g in params.youxi" :key="g.id">{{ g.name }}</li></ol></template></Game><Game> <template v-slot="{youxi}"><h3 v-for="g in youxi" :key="g.id">{{ g.name }}</h3></template></Game></div>
</template>
<template><div class="game"><h2>游戏列表</h2><slot :youxi="games" x="哈哈" y="你好"></slot></div>
</template><script setup lang="ts" name="Game">import {reactive} from 'vue'let games = reactive([{id:'agshshgshhhs01',name:'英雄联盟'},{id:'agshshgshhhs02',name:'绝地求生'},{id:'agshshgshhhs03',name:'和平精英'},{id:'agshshgshhhs04',name:'王者荣耀'}])
</script><style scoped>
.game {width: 200px;height: 300px;background-color: skyblue;border-radius: 10px;box-shadow: 0 0 10px;
}
</style>
组件关系传递方式
父传子props、v-model、$refs、默认插槽、具名插槽
子传父props、自定义事件、v-model、$parent、作用域插槽
祖传孙、孙传祖$attrs、provide、inject
兄弟间、任意组件间mitt、pinia

http://www.ppmy.cn/ops/156886.html

相关文章

基于ArcGIS的SWAT模型+CENTURY模型模拟流域生态系统水-碳-氮耦合过程研究

流域是一个相对独立的自然地理单元&#xff0c;它是以水系为纽带&#xff0c;将系统内各自然地理要素连结成一个不可分割的整体。碳和氮是陆地生态系统中最重要的两种化学元素&#xff0c;而在流域系统内&#xff0c;水-碳-氮是相互联动、不可分割的耦合体。随着流域内人类活动…

使用 Docker 部署 RabbitMQ 的详细指南

使用 Docker 部署 RabbitMQ 的详细指南 在现代应用程序开发中&#xff0c;消息队列系统是不可或缺的一部分。RabbitMQ 是一个流行的开源消息代理软件&#xff0c;它实现了高级消息队列协议&#xff08;AMQP&#xff09;。本文将详细介绍如何使用 Docker 部署 RabbitMQ&#xf…

基于微信小程序的校园水电费管理平台设计与实现

目录 摘要 系统展示 技术介绍 MySQL数据库 Vue框架 代码实现 管理员实现登录后端代码 连接数据库 前端代码实现 获取源码 摘要 随着社会的发展&#xff0c;社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用…

快速上手——.net封装使用DeekSeek-V3 模型

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,用爱发电,去丈量人心,是否能达到人机合一?开工大吉 新的一年就这么水灵灵的开始了,在这里,祝各位读者新春快乐,万事如意! 新年伊…

vulkan学习(一)

opengl相对与vulkan不是一个级别的东西&#xff0c;opengl几十行代码就可以绘制一个简单的物体&#xff0c;而vulkan需要几百行才能绘制&#xff0c;所以vulkan的学习曲线比较陡峭&#xff0c;本人经过也经过一个很长的时间的断断续续学习对vulkan有了一些认识&#xff0c;在这…

C++中的pair,pair和map的结合

文章目录 1. pair 的基本用法语法&#xff1a;示例&#xff1a; 2. pair 和 map 的结合map 的基本用法语法&#xff1a;示例&#xff1a; 3. pair 和 map 中的具体应用(1) map 中的 pair 存储(2) insert 方法插入 pair(3) 使用 auto 获取 pair 对象(4) 使用 pair 和 map 返回多…

Mac: docker安装以后报错Command not found: docker

文章目录 前言解决办法&#xff08;新的&#xff09;解决步骤&#xff08;原来的&#xff09;不推荐总结 前言 ​本操作参考 http://blog.csdn.net/enhenglhm/article/details/137955756 原作者&#xff0c;更详细请&#xff0c;查看详细内容请关注原作者。 一般&#xff0c;…

HarmonyOS NEXT:应用程序框架进阶

基本概念 UIAbility组件&#xff1a;一种包含UI的应用组件&#xff0c;主要用于和用户交互。 ExtensionAbility组建&#xff1a;基于特定场景&#xff0c;如服务卡片、输入法等提供的应用组件&#xff0c;每一个具体场景对应一个ExtensionAbilityType&#xff0c;开发者只能使…