vue 插槽
2020-07-07 17:27
106 查看
简介
插槽就是子组件中提供给父组件的一个占位符,用<slot></slot>表示,父组件可以在这个占位符中填充任何模板内容,如html、组件等,填充的内容会替换子组件的<slot></slot>标签
没有使用插槽的:
[code]**没有使用插槽的:** //子组件 <template> <div class=""> </div> </template> //父组件 <template lang="html"> <div class=""> <New> <div class=""> 插槽 </div> </New> </div> </template>
什么内容都没有
使用插槽的:
[code]//子组件 <template> <div class=""> <slot></slot> </div> </template> //父组件 <template lang="html"> <div class=""> <New> <div class=""> 插槽 </div> </New> </div> </template>
概述:如果子组件中没有使用插槽,父组件往子组件中填充任何内容都会被抛弃
具名插槽
具名插槽其实就是给插槽取个名字。一个子组件可以放多个插槽,而且可以放在不同的地方,而父组件填充内容时,可以根据这个名字把内容填充到对应插槽中。
[code]//子组件 <template> <div class=""> <slot></slot> <div class="header"> <slot name="header"></slot> </div> <div class="footer"> <slot name="footer"></slot> </div> </div> </template> //父组件 <template> <div class="aa"> <New> <div class=""> 插槽 </div> //方式一 <template v-slot:header> <div class=""> header </div> </template> //方式二 <template #header> <div class=""> header </div> </template> <template v-slot:footer> <div class=""> footer </div> </template> </New> </div> </template>
注:
1. 父级的填充内容如果指定到子组件的没有对应名字插槽,那么该内容不会被填充到默认插槽中。
2. 如果子组件没有默认插槽,而父级的填充内容指定到默认插槽中,那么该内容就“不会”填充到子组件的任何一个插槽中。
3. 如果子组件有多个默认插槽,而父组件所有指定到默认插槽的填充内容,将“会” “全都”填充到子组件的每个默认插槽中。
作用域插槽
作用域插槽其实就是带数据的插槽,即带参数的插槽,简单的来说就是子组件提供给父组件的参数,该参数仅限于插槽中使用,父组件可根据子组件传过来的插槽数据来进行不同的方式展现和填充插槽内容。
使用方法:
- 子组件存放一个带数据的插槽: mylist和title是子组件传给父组件的参数
- 父组件通过 “slot-scope” 来接收子组件传过来的插槽数据,再根据插槽数据来填充插槽的内容
- 展现的效果:
- 常用场景(以下为常用的情况之一)
- 如果子组件中的某一部分的数据,每个父组件都会有自己的一套对该数据的不同的呈现方式,这时就需要用到作用域插槽。
绑定在 元素上的特性被称为插槽 prop。
[code]//父组件 <template> <div class="aa"> <New> <template v-slot:default='slotprop'> {{slotprop.data.msg}} </template> </New> </div> </template> //子组件 <template> <div class=""> <slot :data="result"></slot> </div> </template> <script> export default { data: function () { return { result: { msg: '123' } } } } </script>
相关文章推荐
- vue组件插槽
- Vue使用具名插槽细节
- vue自主学习总结,插槽的使用2
- Vue插槽--解决点击整体而不是局部获取id
- vue之template标签及插槽slot
- vue学习之——动态插槽名
- VUE中实名插槽
- 详解Vue中使用插槽(slot)、聚类插槽
- Vue学习2-3.组件;4.插槽分发;5.动态组件;6.数据处理;
- vue中插槽slot
- 使用react context 实现vue插槽slot功能
- vue 插槽理解
- vue——使用插槽分发内容
- Vue-08-具名插槽
- Vue组件--单个插槽
- React(12)组合(类似 Vue 组件的插槽)和继承
- vue-插槽,动态组件和过滤器
- vue插槽使用与具名插槽使用(slot)
- vue学习笔记之slot插槽基本用法实例分析
- vue插槽