Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
491 views
in Technique[技术] by (71.8m points)

vue.js中的组件使用Slot分发内容是什么意思?

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

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

哪些情况下需要用它?

他起什么作用?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

假定 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>

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...