什么是插槽?
官方解释:Vue 实现了一套内容分发的 API,将
个人理解:在父组件中通过使用插槽,向子组件内指定位置传递内容
插槽是否显示,怎样显示是由父组件控制的,而插槽在哪显示是由子组件控制的
插槽可以传递:普通文本、带标签的内容、甚至是其他组件
有哪些插槽,如何使用它们?
匿名插槽(又称默认插槽、单个插槽)
- 一个组件中只能有一个匿名插槽,可以放在组件的任意位置
- 匿名插槽只作为没有设置slot属性元素的插槽
- 父组件不提供任何插槽内容时,将会显示子组件插槽中默认内容,反之默认内容将被覆盖
```vue
vue
<a name="NkQiZ"></a>
## 具名插槽
1. 需要多个插槽时,使用 template 标签(👍 推荐缩写形式 #name)为插槽定义名字
1. 一个组件中可以有多个匿名插槽,可以将顺序打乱放在不同位置
1. 没有对应值的其他内容会被放在子组件中没有添加 name 属性的 slot 中
vue
<a name="cZqcZ"></a>
## 作用域插槽
由于父级模板中的所有内容都是在父级作用域中编译的,子模板中的所有内容都是在子作用域中编译的<br />对于插槽来说,父组件想访问子组件的数据,这时就用到作用域插槽
```vue
<!-- 父组件-->
<view class="father">
<Child #son="info">{{info.data}}</Child>
</slot>
<!-- 子组件 -->
<view class="child">
<slot name="son" :info="data"></slot>
</view>