假定 my-component
组件有下面模板:
<div>
<h2>我是子组件的标题</h2>
<slot>这里可以理解为占位符,就是让这里的内容由组件的调用者传入</slot>
</div>
调用 my-component
:
<div>
<h1>我是调用者的标题,下面调用了 my-component 组件</h1>
<my-component>
<p>这是一些初始内容(这里会替换my-component 里面的slot)</p>
<p>这是更多的初始内容(这里会替换my-component 里面的slot)</p>
</my-component>
</div>
最后调用者和组件被渲染成:
<div>
<h1>我是调用者的标题,下面调用了 my-component 组件</h1>
<div>
<h2>我是子组件的标题</h2>
<p>这是一些初始内容(这里会替换my-component 里面的slot)</p>
<p>这是更多的初始内容(这里会替换my-component 里面的slot)</p>
</div>
</div>
你还可以想象一下, div
其实就是浏览器原生的一个组件,我们在div标签内写入的标签,最后都会被渲染出来,div 就是一个最简单的内容分发组件 。
<div>
<slot></slot>
</div>
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…