javascript - vue.js中的组件使用Slot分发内容是什么意思?
阿神
阿神 2017-04-11 12:17:39
[JavaScript讨论组]

http://cn.vuejs.org/v2/guide/...使用-Slot-分发内容

看官方文档的组件部分看到上面链接中的这个地方就开始懵逼了,这个SLOT分发内容到底是什么意思啊?

哪些情况下需要用它?

他起什么作用?

阿神
阿神

闭关修行中......

全部回复(3)
巴扎黑

假定 my-component 组件有下面模板:

<p>
  <h2>我是子组件的标题</h2>
  <slot>这里可以理解为占位符,就是让这里的内容由组件的调用者传入</slot>
</p>

调用 my-component

<p>
  <h1>我是调用者的标题,下面调用了 my-component 组件</h1>
  <my-component>
    <p>这是一些初始内容(这里会替换my-component 里面的slot)</p>
    <p>这是更多的初始内容(这里会替换my-component 里面的slot)</p>
  </my-component>
</p>

最后调用者和组件被渲染成:

<p>
  <h1>我是调用者的标题,下面调用了 my-component 组件</h1>
  <p>
    <h2>我是子组件的标题</h2>
    <p>这是一些初始内容(这里会替换my-component 里面的slot)</p>
    <p>这是更多的初始内容(这里会替换my-component 里面的slot)</p>
  </p>
</p>

你还可以想象一下, p 其实就是浏览器原生的一个组件,我们在p标签内写入的标签,最后都会被渲染出来,p 就是一个最简单的内容分发组件 。

<p>
    <slot></slot>
</p>
阿神

内容分发的业务场景大部分应用在组件复用时,例如楼主写了共享组件A,共享组件A内部的内容渲染取决于调用它的组件给其传入的内容,此时就需要slot上场了。因此slot的作用就是在公有组件中留给不同场景下调用时需要传入的渲染内容。

PHP中文网

如果了解 Angular,这和 Angular 的交织的概念是相似的。

SLOT 用于实现父子组件渲染内容的“交织”——你中有我,我中有你。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号