插槽分为单个插槽,具名插槽,还有作用域插槽,前两种比较简单这里就不赘述了,今天的重点是讨论作用域插槽。

简单来说,前两种插槽的内容和样式皆由父组件决定,也就是说显示什么内容和怎样显示都由父组件决定

作用域插槽的样式由父组件决定内容却由子组件控制。简单来说:前两种插槽不能绑定数据,作用域插槽是一个带绑定数据的插槽。

注意:在 2.5.0+,slot-scope 不再限制在 <template> 元素上使用,而可以用在插槽内的任何元素或组件上。

1.App.vue

 <template>
<div>
<child :propName="items"> <!--传值到子组件-->
<!--写法1 -->
<li
<!--作用域插槽也可以具名 绑定slot name="slotName"-->
slot="slotName"
<!--把子组件插槽看作一个对象, 赋给scopeName-->
slot-scope="scopeName">
<!-- dos="item.do" (子组件中)-->
{{scopeName.dos}}
</li>
</child> <!--写法2 es6 的解构写法 推荐!!!-->
<child :propName="items">
<li slot="slotName" slot-scope="{item}">
{{item.do}}
</li>
</child> </div>
</template>
<script>
import child from "./components/child.vue"
export default{
components:{child},
data(){
return{
items:[
{do:'play'},
{do:'eat'},
{do:'sleep'},
{do:'play'},
{do:'eat'},
{do:'sleep'}
]
}
}
}
</script>

2.child.vue

 <template>
<ul>
<slot name="slotName" <!--作用域插槽也可以具名!-->
v-for="item in items"
:dos="item.do" <!--取循环中的项作为属性 方便父组件调用!-->
></slot>
</ul>
</template>
<script>
export default{
props:['items'] <!--父级items 传过来的值!-->
}
</script>

最新文章

  1. iOS 在特定页面 界面旋转
  2. SQL Convert XML to Table
  3. Android 仿360桌面小人
  4. C语言 二维数组复制、清零及打印显示
  5. FreeMarker标签
  6. JS中的事件&amp;对象
  7. windows10 使用gitblit搭建git服务器
  8. 分布式内存网格Hazelcast源码导读
  9. Gradle 1.12用户指南翻译——第二十三章. Java 插件
  10. Python基础之迭代器、生成器
  11. 面经 cisco 2
  12. 【ML入门系列】(二)分类与回归
  13. odoo配置文件详解
  14. 操作系统介绍-操作系统历史,IO,进程的三态,同步异步阻塞非阻塞
  15. Python函数学习
  16. DES/3DES/AES区别
  17. Saltstack-API(十二)
  18. SVG.js Mask覆盖和ClipPath裁剪
  19. Solr系列一:Solr(Solr介绍、Solr应用架构、Solr安装使用)
  20. android studio gradle dependencies 包存放在哪儿?

热门文章

  1. python模块之configparse模块
  2. mysql杯观锁与乐观锁
  3. pymysql.err.InternalError: Packet sequence number wrong - got 45 expected 0
  4. linux磁盘命令-lsblk显现磁盘阵列分组
  5. Linux直播推流
  6. Django回顾
  7. @Override报错的处理
  8. Mysql与Postgresql
  9. 王之泰201771010131《面向对象程序设计(java)》第十四周学习总结
  10. jquery-1.4.4.min.js无法解析json中result.data问题