一开始接触vue时并不知道插槽是什么,后来看了很多文章也是一知半解。然后自己手动敲了一下,在项目中实际应用一下,实在太好用了。后来做小程序后发现也能使用slot,不单单在vue中使用。我就是这么目光短浅(QAQ)。尤其在做组件开发的时候更不能少了slot的使用。
一、对插槽的理解
对于一开始听到别人提起,这段代码中用个插槽特别方便。然而并不知什么是插槽,为什么要用插槽。后来看了很多文章,以下为个人的理解:
插槽用在子组件中,使用
光说不行,读完上边的话再来看看这段代码
你好
结果并没有“你好”输出。然后我们在子组件中加入一个
这样父组件中在使用
插槽就是Vue实现的一套内容分发的API,将
没有插槽的情况下在组件标签内些一些内容是不起任何作用的,当我在组件中声明了slot元素后,在组件元素内写的内容就会跑到它这里了!
二、具名插槽
具名插槽,就是给这个插槽起个名字
在组件中,我给插槽起个名字,一个名字叫"girl",一个名字叫"boy",还有一个不起名字
漂亮、美丽、购物、逛街 帅气、才实 无名无姓,普通的插槽
三、默认插槽
上面已经介绍过了,这里不做描述
四、作用域插槽
之前一直没搞懂作用域插槽到底是什么,该怎么用。研究发现以后,个人理解为:
在组件中绑定在slot标签上的属性,在父组件使用组件标签时可以拿到属性/值。请看如下代码:
{ {a}}
通过在浏览器上查看,以json对象形式展示出来,只不过它是个字符串。
{ {a}}
- for="list in lists">
假如我在加一些判断,对这些数据进行操作
if="a.phone.id===1">这是{ {a.phone.brand}}else>{ {a.phone.brand}}
- for="list in lists">
用过element-ui的朋友们到这一步是不是很熟悉,饿了么组件表格就是这样实现的,表格的本质就是这个。