当前位置: 首页 > news >正文

11 vue3之插槽全家桶

插槽就是子组件中的提供给父组件使用的一个占位符,用<slot></slot> 表示,父组件可以在这个占位符中填充任何模板代码,如 HTML、组件等,填充的内容会替换子组件的<slot></slot>标签。

匿名插槽

1.在子组件放置一个插槽

<template><div><slot></slot></div>
</template>

 父组件使用插槽

在父组件给这个插槽填充内容

        <Dialog><template v-slot><div>2132</div></template></Dialog>

具名插槽

具名插槽其实就是给插槽取个名字。一个子组件可以放多个插槽,而且可以放在不同的地方,而父组件填充内容时,可以根据这个名字把内容填充到对应插槽中

    <div><slot name="header"></slot><slot></slot><slot name="footer"></slot></div>

父组件使用需对应名称

        <Dialog><template v-slot:header><div>1</div></template><template v-slot><div>2</div></template><template v-slot:footer><div>3</div></template></Dialog>

插槽简写

        <Dialog><template #header><div>1</div></template><template #default><div>2</div></template><template #footer><div>3</div></template></Dialog>

作用域插槽

作用域插槽由子组件暴露值出来

在子组件动态绑定参数 派发给父组件的slot去使用

    <div><slot name="header"></slot><div><div v-for="item in 100"><slot :data="item"></slot></div></div><slot name="footer"></slot></div>

 通过结构方式取值

         <Dialog><template #header><div>1</div></template><template #default="{ data }"><div>{{ data }}</div></template><template #footer><div>3</div></template></Dialog>

动态插槽

插槽可以是一个变量名

<template><h2>动态插槽动态更改插槽名</h2><Ten><template #[name]><div>我在哪儿</div></template></Ten>
</template><script setup lang="ts">
import { ref, reactive } from "vue";
import Ten from "./components/ten.vue";
// let name = ref("header");
let name = ref("footer");
// let name = ref("default");
</script>

 子组件

<template><div class="header"><slot name="header"></slot></div><div class="main"><slot></slot></div><div class="footer"><slot name="footer"></slot></div>
</template><style lang="scss" scoped>
div {width: 100%;height: 100px;
}
.header {background: antiquewhite;
}
.main {background: aqua;
}
.footer {background: pink;
}
</style>

效果图:

12 vue3之异步组件&代码分包&内置组件suspense和teleport-CSDN博客文章浏览阅读23次。12 vue3之异步组件&代码分包&内置组件suspense和teleporthttps://blog.csdn.net/qq_37550440/article/details/142329387?sharetype=blogdetail&sharerId=142329387&sharerefer=PC&sharesource=qq_37550440&spm=1011.2480.3001.8118

http://www.lryc.cn/news/442308.html

相关文章:

  • Excel 基础知识-操作手册1
  • Python 类的继承
  • gRPC介绍
  • Git之误执行git rm -r解决方案(六十七)
  • html文件指什么
  • AAAI2024--频谱在多模态表示和融合中的作用更为有效:A Multimodal Spectrum Rumor Detector
  • 【Python报错已解决】SyntaxError invalid syntax
  • CI/CD持续集成和持续部署以及相关软件的使用
  • Charles mac电脑配置
  • FPGA基本结构和简单原理
  • 【machine learning-七-线性回归之成本函数】
  • Stable Diffusion Fooocus批量绘图脚本
  • Web 安全基础教程:从零基础入门到精通
  • ubuntu 20.04 ‘Wired Unmanaged‘ 网络无法配置解决方法
  • 前端实战:使用JS和Canvas实现运算图形验证码(uniapp、微信小程序同样可用)
  • SQL Server 语句日期格式查找方法
  • 【Python报错已解决】python setup.py bdist_wheel did not run successfully.
  • 查询结果是1条记录,但执行更新却是2条记录原因查找
  • 校园网站的管理与建设心得体会
  • 智慧农业——InsectMamba利用状态空间模型对害虫进行分类
  • 基于机器学习的癌症数据分析与预测系统实现,有三种算法,bootstrap前端+flask
  • docker|Oracle数据库|docker快速部署Oracle11g和数据库的持久化(可用于生产环境)
  • uni-app 聊天界面滚动到消息底部
  • 学习风格的类型
  • GCP容器镜像仓库使用
  • 【C++ Primer Plus习题】16.10
  • Django框架全面指南
  • git 更新LingDongGui问题解决
  • Thymeleaf模版引擎
  • jpa适配mysql切换达梦可能的坑