码农知识堂 - 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>

    效果展示:

  • 相关阅读:
    前端KOA搭建服务器——part1
    浅谈java开启异步线程的几种方法(@Async,AsyncManager,线程池)
    【Proteus仿真】【51单片机】智能语音家居陪护机器人
    (C语言改错)找素数出错了?
    【3D 图像分割】基于 Pytorch 的 VNet 3D 图像分割5(训练篇)
    JUC并发编程——8锁现象(基于狂神说的学习笔记)
    MyBatis动态SQL(if、choose、when和otherwise)标签
    学校报名测评小程序开发制作功能介绍
    Javaweb之Vue的概述
    ️️️Vue3+Element-Plus二次封装一个可定制化的table组件
  • 原文地址:https://blog.csdn.net/yzq0820/article/details/126291140
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号