Vue中slot的使用(通俗易懂)

 

个人理解:
是对组件的扩展,通过slot插槽向组件内部指定位置传递内容,通过slot可以父子传参;

 

开发背景(slot出现时为了解决什么问题):
正常情况下,<Child><span style=”color:red;”>hello world</span></Child>在组件标签Child中的span标签会被组件模板template内容替换掉,当想让组件标签Child中内容传递给组件时需要使用slot插槽;
Slot的通俗理解
是“占坑”,在组件模板中占好了位置,当使用该组件标签时候,组件标签里面的内容就会自动填坑(替换组件模板中<slot>位置),当插槽也就是坑<slot name=mySlot>有命名时,组件标签中使用属性slot=mySlot的元素就会替换该对应位置内容;

 
Slot使用

 

1、(匿名插槽)组件中有单个或多个未命名slot标签时,如下:

 

<Child><span style=”color:red;”>hello world</span></Child>   

 

<template>    

  <div>

<slot></slot>

<slot  style=”color:blue;” >这是在slot上添加了样式</slot>

<slot  name=”mySlot”>这是拥有命名的slot的默认内容</slot>

</div>

</template>

会输出:两个红色的hello world,以及一个使用slot的默认内容

 

注意:在slot标签添加样式无效。拥有命名的插槽不能被不含slot属性的标签内容替换,会显示slot的默认值(具名slot具有对应性);

 

2、(具名插槽)组件中有多个命名的slot插槽时,可以实现父组件对子组件的指定位置显示内容或传参,如下:

 

<Child>

<span slot="header">hello world</span>

<span slot="main">hello world</span>

<span slot="footer">hello world</span>

<span slot="other">{{otherData}}</span>

</Child>

 

<template>

<div>

<slot  name=”header”>这是拥有命名的slot的默认内容</slot>

<slot  name=”main”>这是拥有命名的slot的默认内容</slot>

<slot  name=”footer”>这是拥有命名的slot的默认内容</slot>

<slot  name=”other”>这是拥有命名的slot的默认内容</slot>

</div>

</template>

 

3、作用域插槽!!:
使用时候子组件标签<Child>中要有<template slot-scope=scopeName>标签,再通过scopeName.childProp就可以调用子组件模板中的childProp绑定的数据,所以作用域插槽是一种子传父传参的方式,解决了普通slot在parent中无法访问child数据的去问题;

作用域插槽代表性的用例是列表组件,允许在parent父组件上对列表项进行自定义显示,如下该items的所有列表项都可以通过slot定义后传递给父组件使用,也就是说数据是相同的,不同的场景页面可以有不同的展示方式:

   <ul>

      <slot name="item" v-for="item in items" :text="item.text" :myname="item.myname" >

         slot的默认内容

      </slot>

   </ul>

 

   <Child>

      <template slot="item" slot-scope="props">

        <li>{{props.myname}}</li>

      </template>

   </Child>

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/554108.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UC浏览器PC版新版有什么特点

核心提示&#xff1a; UC浏览器PC版日前放出了3.1.1644.21版更新&#xff0c;新版主要是加入了天猫双十一的活动互动功能&#xff0c;并对界面进行了优化。 UC浏览器PC版新版有什么特点 UC浏览器PC版3.1.1644.21版更新内容&#xff1a; 双十一UC特供&#xff1a; 用淘宝账号…

Vue-cli项目中mockjs + axios实现前后端分离代码demo(清晰易懂)

基础准备&#xff1a;1、npm安装vue-cli脚手架后&#xff0c;通过命令“ vue init webpack 项目名 ”来创建项目&#xff1b;2、了解mockjs&#xff0c;能拦截ajax请求&#xff0c;返回模拟的响应数据&#xff0c;实现前后端分离&#xff1b;&#xff08;详细学习网址&#xff…

uc浏览器下载的视频怎么导出来?导出方法分享

很多时候用户都会使用浏览器下载视频和文件&#xff0c;那么用户已经下载的视频要如何导出呢&#xff0c;这时候如果不知道怎么操作&#xff0c;那么就往下看下去吧&#xff0c;今天小编会与大家一起来分享一下如何将uc浏览器下载的视频导出的方法&#xff0c;其实操作下来还是…

JS闭包的简单理解。优缺点以及垃圾回收机制

闭包是什么&#xff1f;了解闭包首先了解js的‘链式作用域’结构&#xff0c;对象可以一级一级的向上查找父对象的变量&#xff0c;所以父对象的变量对子对象可见&#xff0c;反之不成立&#xff1b;所以都可以访问全局变量 为了解决函数外部无法访问函数内局部变量的问题&…

如何禁止爱奇艺视频

本文播放器家园网给大家整理了如何禁止爱奇艺视频方面的内容。爱奇艺pc端和手机端都支持通过频道推荐、观看历史、加入看单、搜索功能快速找到想看的视频。 WFilter有自带的常用协议特征库&#xff0c;可以通过禁止“爱奇艺视频”的协议来禁止爱奇艺视频。步骤如下 1、1.打开…

详解var、let、const关键词声明变量的区别,以及变量提升、块级作用域的认识等。

首先回顾一下JavaScript中var声明变量的基础知识&#xff1a;• 在使用var关键词声明变量时&#xff0c;变量在函数外则是全局变量&#xff0c;有全局作用域&#xff0c;全局变量在页面关闭后销毁&#xff1b;变量在函数内则是局部变量&#xff0c;作用局部作用域&#xff08;变…

腾讯视频如何设置热键

本文小编给大家带来的是腾讯视频相关的内容。腾讯视频有快捷键的功能&#xff0c;那怎么设置或更改呢?来看一下具体步骤吧! 1、首先&#xff0c;打开电脑里的腾讯视频&#xff0c;然后点击右上方的“菜单”键 2、点击后会弹出一个弹窗&#xff0c;点击“设置” 3、进入设置…

浏览器tab标签显示网站标志图标

对于不同的浏览器&#xff0c;方法是有差别的 1.对于IE或TT浏览器&#xff1a;把需要显示的16x16像素的ICO图标命名为favicon.ICO放置在网站根目录下&#xff0c;浏览器会自动检索 2.这大概是所有浏览器通用的在标签页加入指定图标的方法&#xff1a; 把favicon.ico图标放到网站…

如何使用腾讯视频小程序功能

很多人都使用腾讯视频&#xff0c;播放器家园网小编给大家分享一下如何下载腾讯视频里的视频_*腾讯视频&#xff5e;如何使用腾讯视频小程序功能呢相关内容。 腾讯视频&#xff5e;如何使用腾讯视频小程序功能呢? 首先找到手机软件&#xff0c;打开后按照下面的指示一步步完…

关于web前端性能优化总结

1、从DOM结构和标签上来优化使用语义化的标签&#xff0c;代码清晰简洁&#xff1b; 减少Dom节点&#xff0c;增加渲染速度&#xff1b; 使用W3C标准书写闭合小写的标签&#xff1b; 给图片和table指定宽高&#xff0c;避免缩放&#xff1b; 防止src和href值为空&#xff0c;当…

爱奇艺视频播放怎么开加速

很多人都使用爱奇艺&#xff0c;播放器家园网小编给大家分享一下爱奇艺下载电视剧怎么下载手机_爱奇艺视频播放什么开加速相关内容。爱奇艺视频播放什么开加速?爱奇艺视频播放的时候想要加速播放&#xff0c;那到底是什么整的呢&#xff0c;具体的设置操作步骤如下 1、点击爱…

关于提高网页加载速度个人学习以及经验总结

性能黄金法则&#xff1a; 记住&#xff1a;只有10% - 20%的最终用户时间花在了下载HTML文档上&#xff0c;其余的80%-90%时间花在下载页面中的所有组件&#xff08;js、css 、image 、flash&#xff09;进行的http请求上。根据上面的黄金法则&#xff0c;可以知道网页提速方式…

搜狐视频如何开启青少年模式

搜狐视频开启青少年模式可以避免孩子使用时造成的无意识消费&#xff0c;那么如何开启呢?下面给大家简单介绍一下 1、首先在手机桌面找到【搜狐视频】并点击进入 2、在【我的】页签点击右上角设置图标进入 3、点击【青少年模式】进入 4、点击【开启青少年模式】即可完成本…

VUE学习和开发中的注意点总结(一),便于回顾(不断完善补充。)

1、export 和export default 的区别&#xff1f; 在JavaScript ES6中&#xff0c;export与export default均可用于导出常量、函数、文件、模块等&#xff0c;你可以在其它文件或模块中通过import(常量 | 函数 | 文件 | 模块)名的方式&#xff0c;将其导入&#xff0c;以便能够对…

手机qq浏览器过滤广告设置教程

手机qq浏览器过滤广告设置教程 手机QQ浏览器怎么过滤广告?今天浏览器家园小编给大家分享的是如何屏蔽手机QQ浏览器广告?对这个感兴趣的小伙伴们就一起学习下吧&#xff0c;以下就是具体的内容。 手机QQ浏览器屏蔽广告方法 1.打开手机QQ浏览器&#xff0c;点击底栏【菜单】 …

绘制扇形的多种方式,包括border-radius、clip裁剪显示、canvas原点变换等方式的详细理解及demo

对clip的理解&#xff1a; clip是对使用了该样式的元素进行裁剪显示。使用方法是rect (top, right, bottom, left) 其中参数top代表显示的区域上边界离该元素顶部border-top相对距离&#xff0c;依此分别是右边界离该元素左侧border-left相对距离。参数top和left取值auto时候代…

QQ浏览器怎么设置为默认浏览器

怎么将qq浏览器安装成自己想要的默认浏览器呢&#xff0c;今天小编就教大家一个方法&#xff0c;通过简单的方式&#xff0c;将qq浏览器设置成默认浏览器&#xff0c;这样用户在操作的时候就会更加的方便&#xff0c;打开浏览器就可以使用qq浏览器的功能&#xff0c;那么到底要…

在VUE项目中使用SCSS ,对SCSS的理解和使用(简单明了)

首先要了解什么是CSS 预处理器&#xff1f; SCSS是一种CSS预处理语言定义了一种新的专门的编程语言&#xff0c;编译后形成正常的css文件&#xff0c;为css增加一些编程特性&#xff0c;无需考虑浏览器的兼容性&#xff08;完全兼容css3&#xff09;&#xff0c;让css更加简洁、…

如何解决360浏览器卡死的问题

我们在上网的时候&#xff0c;不可缺少的就是浏览器了&#xff0c;有一大部分人还是喜欢用360浏览器的。刚开始用360浏览器的时候感觉很不错&#xff0c;都都不知什么情况&#xff0c;老是无故崩溃&#xff0c;或者时常卡死&#xff0c;上网慢&#xff0c;播放视频插件响应失败…

前端windows下常用的CMD 命令归纳

前言&#xff1a;在vue项目开发或安装部署卸载时候经常会用到CMD命令操作&#xff0c;所以这里将常用到的cmd命令进行归纳。在运行框或cmd界面输入以下代码&#xff0c;回车键确定跳转对应的功能或界面shutdown 关机&#xff1b;mspaint 打开画图工具&a…