Vue内容分发的使用

作者: BigTable | 来源:发表于2017-03-07 15:38 被阅读0次

官方文档对于这一块写的比较不好理解,也有点绕弯子.
在这写一点个人的理解,和使用姿势.....

个人对内容分发<slot>的理解可以看做是 占位符、标签替换、插槽
父组件中放入带有slot属性的内容,然后这些内容就会被分发到子组件中特殊的slot元素,根据name属性在子组件中重新组合、替换。

<!--父组件-->
<div id="parent">
    <child>
        <!--等待分发的内容-->
        <p slot="one">一些内容</p>  
        <p slot="two">另外一些内容</p>
        <p>不带slot属性的标签</p>
    </child>
</div>
<!--子组件-->
<div id="child">
    <slot><h1>默认替换不带slot的元素</h1></slot>
    <slot name="one">会被替换成父组件中slot="one"的元素</slot>
    <slot name="two">会被替换成父组件中slot="two"的元素</slot>
    <p>子组件自己的标签</p>
</div>

最后会被渲染成:
标签的顺序是根据子组件标签的顺序排列的,自行对照

<div>  
    <!--渲染后-->
    <p>不带slot属性的标签</p> 
    <p>一些内容</p> 
    <p>另外一些内容</p> 
    <p>子组件自己的标签</p>
</div>

如果父组件内没有那个不带slot属于的p标签, 则子组件内不带name属性的<slot>会显示标签内的内容,没有标签包裹.

<div>  
    <!--渲染后-->
    <h1>不带slot属性的标签</h1>
    <p>一些内容</p> 
    <p>另外一些内容</p> 
    <p>子组件自己的标签</p>
</div>

slot就是外部调用时会被外部替换掉,如果外部没有内容则显示自己的内容;


2.1.0 新增了作用域插槽

可以理解为,子组件可以将自己的数据发给父组件来处理

<!--子组件-->
<div id="child">
    <ul>
        <slot name="list" v-for="val in arr" :text="val"></slot>
    </ul>
</div>

data() { 
    return {
        arr:[1,2,3]
    } 
}
<!--父组件-->
<div id="parent">
    <Child>
       <template slot="list" scope="props">
           <li>{{ props.text + 1 }}</li>
       </template>
    </Child>
</div>
<!--最后渲染-->
<div id="child">
    <ul>
        <li>2</li>
        <li>3</li>
        <li>4</li>
    </ul>
</div>

相关文章

  • 27.Vue slot内容分发-解构

    Vue slot的使用参考:26.Vue slot内容分发 什么是slot分发解构:官方定义:如果一个 JavaS...

  • slot是什么?有什么作用?原理是什么?

    slot又名插槽,是Vue的内容分发机制,组件内部的模板引擎使用slot元素作为承载分发内容的出口。插槽slot是...

  • slot(插槽)

    slot又称插槽,是Vue的内容分发机制,组件内部的模板引擎使用slot元素作为承载分发内容的出口。插槽slot是...

  • Vue内容分发的使用

    官方文档对于这一块写的比较不好理解,也有点绕弯子.在这写一点个人的理解,和使用姿势..... 个人对内容分发 的理...

  • 插槽

    一、前言 vue中可以使用插槽slot分发内容给子组件,slot可以避免html被转义(不需要使用v-html)。...

  • 2020-07-23 一次性讲明白vue插槽slot

    vue插槽slot 一、前言 vue官方文档中在"组件基础"内容中提到组件可以通过插槽分发内容,那插槽是怎么使用的...

  • vue插槽slot

    vue插槽slot 一、前言 vue官方文档中在"组件基础"内容中提到组件可以通过插槽分发内容,那插槽是怎么使用的...

  • Vue中使用Slot分发内容

    使用slot分发内容 使用一种方式混合父组件的内容与子组件自己的模版,这个过程被称为“内容分发”。在子组建中使用特...

  • vue使用slot分发内容与react使用prop分发内容

    vue 将 元素作为承载分发内容的出口 当组件渲染的时候, 将会被替换该组件起始标签和结束标签之间的任何内...

  • Vue插槽详解-使用slot分发内容

    什么是slot(插槽) 为了让组件可以组合,我们需要一种方式来混合父组件的内容与子组件自己的模板。这个过程被称为 ...

网友评论

    本文标题:Vue内容分发的使用

    本文链接:https://www.haomeiwen.com/subject/odymgttx.html