码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 一学就会的Vue slot插槽,真的不看看吗?(使用脚手架)


    目录

    一、前言

    完整内容请关注:

    开始前的准备:

     二、slot插槽的基本使用

    子组件:

    父组件:

    展示效果:

    三、域名插槽的基本使用

    子组件:

    父组件:

    效果展示:

    注意:

    四、如何通过slot从子组件获取内容

    子组件

    父组件

    效果展示:

    五、作用域插槽案例

    子组件

    父组件

    效果展示:


    一、前言

    完整内容请关注:

    https://blog.csdn.net/yzq0820/category_11934130.html?spm=1001.2014.3001.5482https://blog.csdn.net/yzq0820/category_11934130.html?spm=1001.2014.3001.5482

    开始前的准备:

    首先创建两个子组件,soltOne是基础使用,soltTwo是域名插槽使用,soltThree是演示父组件获取子组件内容,图片后的代码一定要注意,容易出现很多细节上的小问题。

    1. import SoltOne from './components/soltOne.vue'
    2. import SoltThree from './components/soltThree.vue'
    3. import SoltTwo from './components/soltTwo.vue'
    4. export default {
    5. name: 'app',
    6. components: {
    7. SoltOne,
    8. SoltTwo,
    9. SoltThree
    10. },

     二、slot插槽的基本使用

    子组件:

    在子组件中使用 给值留下位置,可以得到父组件的值

    1. <script>
    2. export default {
    3. name:'soltOne'
    4. }
    5. script>
    6. <style>
    7. style>

    父组件:

     <solt-one>有Bug发生solt-one>

    展示效果:

     以上就是插槽的最基本的使用

    三、域名插槽的基本使用

    子组件:

    这里,我简单的划分了三个区域,一个头部,内容,尾部

    头部和尾部 都给上了name:‘’让其获得域名

    1. <script>
    2. export default {
    3. name:'soltTwo'
    4. }
    5. script>
    6. <style>
    7. style>

    父组件:

    在此内容下,p标签内只要对应子组件起的name名,就能把值赋值到想要的地方,没有name名的将会赋值到,子组件中没有name名的位置。

    1. <p slot="header">头部信息p>
    2. <p>主要内容1p>
    3. <p>主要内容2p>
    4. <p slot="footer">尾部信息p>

    效果展示:

    父组件还有一种,可以通过域名来实现插槽,使用v-slot:来获取子组件的域名,从而指定赋值,其中也可以添加多条内容,比上一种方法更完善。

    1. <solt-two>
    2. <template v-slot:header>
    3. <p>头部信息1p>
    4. <p>头部信息2p>
    5. template>
    6. <p>主要内容1p>
    7. <p>主要内容2p>
    8. <template v-slot:footer>
    9. <p>尾部信息1p>
    10. <p>尾部信息2p>
    11. template>
    12. solt-two>

    注意:

    这里的顺序是根据子组件的顺序排列,父组件跟换域名位置,还是按照子组件的域名排序出现

    内容会跟着父组件发生改变

    1. <solt-two>
    2. <template v-slot:footer>
    3. <p>头部信息1p>
    4. <p>头部信息2p>
    5. template>
    6. <p>主要内容1p>
    7. <p>主要内容2p>
    8. <template v-slot:header>
    9. <p>尾部信息1p>
    10. <p>尾部信息2p>
    11. template>
    12. solt-two>

    四、如何通过slot从子组件获取内容

    子组件

    这里需要注意的是,要将子组件的值进行v-bind绑定

    1. <script>
    2. export default {
    3. name:'soltThree',
    4. data(){
    5. return{
    6. list:[1,2,3,4,5,6,7,8,9]
    7. }
    8. }
    9. }
    10. script>
    11. <style>
    12. style>

    父组件

    一下提供了四种,子组件的值可以使用v-for遍历,这里的list1是自己新起的名字,son是子组件绑定的,slot-scope这种方法逐步出现了淘汰, #default这种方法比较推荐,看起来就很简单好记

    1. <template v-slot="list1">
    2. <div>{{list1.son}}div>
    3. template>
    4. <solt-three>
    5. <template v-slot:default="list1">
    6. <div>{{list1.son}}div>
    7. template>
    8. solt-three>
    9. <solt-three>
    10. <template #default="list1">
    11. <ul>
    12. <li v-for="(item,index) in list1.son" :key="index">{{item}}li>
    13. ul>
    14. template>
    15. solt-three>
    16. <solt-three>
    17. <template slot-scope="list1">
    18. <div>{{list1.son}}div>
    19. template>
    20. solt-three>

    效果展示:

    五、作用域插槽案例

     父组件替换插槽的标签,但是内容是由子组件来提供。

    ​ 当组件需要在多个父组件多个界面展示的时候,将内容放在子组件插槽中,父组件只需要告诉子组件使用什么方式展示界面。

    子组件

    1. <template >
    2. <div>
    3. <slot :data="pLanguage">
    4. <ul>
    5. <li v-for="(item, index) in pLanguage" :key="index">{{item}}li>
    6. ul>
    7. slot>
    8. div>
    9. template>
    10. <script>
    11. export default {
    12. name:'oneText' ,
    13. data() {
    14. return {
    15. pLanguage:['JavaScript','Java','C++','C']
    16. }
    17. },
    18. }
    19. script>
    20. <style>
    21. style>

    父组件

     

    1. <one-text>
    2. <template #default="slot">
    3. <span>{{slot.data.join(' - ')}}span>
    4. template>
    5. one-text>
    6. <one-text>
    7. <template #default="slot">
    8. <p><span v-for="(item, index) in slot.data" :key="index">{{item}}span>p>
    9. <span>{{slot.data.join(' * ')}}span>
    10. template>
    11. one-text>

    效果展示:

  • 相关阅读:
    【MySQL】 MySQL亿级数据、主从架构,Sharding分片
    小米屡次违反GPL协议,疑成“惯犯”
    九、Mysql - 错误日志 - 慢日志 - 通用日志 - 二进制日志 - undolog - redolog - 事务的执行过程
    【论文系列】01_如何做好文献阅读及笔记整理
    【Python仿真】基于EKF的传感器融合定位
    详解 Flink 的容错机制
    基于STM32 CubeMX利用RTC实现带温湿度模块的万年历
    天天拍车一面面经(已过)
    python实现oracle数据库连接并转成dataframe
    【等保常见问题解答】等保测评机构能帮忙做等保整改吗?
  • 原文地址:https://blog.csdn.net/yzq0820/article/details/126291140
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号