普通插槽、具名插槽、作用域插槽
创始人
2025-05-31 00:42:25

插槽

插槽就是子组件提供给父组件的占位符,用slot来表示,父组件可以在这个占位符中填充各种的模板代码。

为什么要使用插槽?

你可能不太明白为什么要给子组件传入HTML而不是直接写在子页面中内,如果出现这种情况,你有五个子页面这五个子页面只有一小部分内容不一样。你会怎么做呢?最笨的办法就是复制代码,但在Vue中更加简便的方法就是插槽。

插槽的分类:

普通插槽、具名插槽、作用域插槽

普通插槽

子组件son.vue:


父组件



具名插槽

具名插槽就是每个插槽带有自己的名字,在父组件中用到v-slot,也可以直接缩写为#

子组件:


父组件


作用域插槽

作用域插槽可以传递参数。

子组件



父组件



在这里插入图片描述

动态插槽

动态指令参数也可以用在 v-slot 上,来定义动态的插槽名.

子组件:


父组件:


img

总结

slot又名插槽,是Vue的内容分发机制,组件内部的模板弓|擎使用slot元素作为承载分发内容的出口。插槽slot是子组件的一个模板标签元素,而这一个标签元素是否显示,以及怎么显示是由父组件决定的。

slot又分三类,默认插槽,具名插槽和作用域插槽。

  • 默认插槽:又名匿名插槽,当slot没有指定name属性值的时候一个默认插槽,一个组件内只有一个匿名插槽。
  • 具名插槽:带有具体名字的插槽, 也就是带有name属性的slot, 一个组件可以出现多个具名插槽。
  • 作用域插槽:默认插槽、具名插槽的一个变体,可以是匿名插槽,也可以是具名插槽,该插槽的不同点是在子组件渲染作用域插槽时,可以将子组件内部的数据传递给父组件,让父组件根据子组件的传递过来的数据决定如何渲染该插槽。

实现原理:当子组件vm实例化时,获取到父组件传入的slot标签的内容,存放在vm. $slot中,默认插槽为vm. $slot .default,具名插槽为vm. $slot.xxx , xx为插槽名,当组件执行渲染函数时候,遇到slot标签,使用$slot 中的内容进行替换,此时可以为插槽传递数据,若存在数据,则可称该插槽为作用域插槽。

相关内容

热门资讯

玛雅人的五大预言 玛雅人预言2... 曾经玛雅人预言2012年是世界末日,但当时好像没有发生什么。没想到10年后的2022年,疫情,战争,...
cad打印线条粗细设置 cad... 004-线型(下)打印样式设置和线型文件使用一、线宽设置方法制图规范里边的线宽要求,我们已经定义好,...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
荼蘼什么意思 岁月缱绻葳蕤生香... 感谢作者【辰夕】的原创独家授权分享编辑整理:【多肉植物百科】百科君坐标:云南 曲靖春而至,季节流转,...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...