vue插槽slot

经常使用插槽分为三类:默认插槽,具名插槽,做用域插槽vue

插槽:子组件的内容往父组件里面填充,父组件里面包含的内容会根据插槽的类型填充到对应的slot定义的标签中bash

1,常见的vue父子组件引入ui

//父组件parent.vue
<div class="parent">
    <child></child>//在父组件的child中没有内容,此时没有出现插槽
</div>复制代码

//子组件child.vue
<div class="child">
    <span>fanfanjun</span>
</div>
复制代码

2,插槽的出现--默认插槽操做spa

//父组件parent.vue
<div class="parent">
    <child>//在父组件的child中没有内容,此时没有出现插槽        <span>fanfanjun1</span>
    </child>
</div>复制代码
//子组件child.vue
<div class="child">
    <slot></slot>
    <span>fanfanjun2</span>
</div>复制代码

渲染结果:code

//父组件parent.vue
<div class="parent">
    <div class="child">//替换父组件child标签
        <span>fanfanjun1</span>//默认由父组件child的里面内容替换
        <span>fanfanjun2</span>
    </div></div>复制代码

3,具名插槽作用域

//父组件parent.vue
<div class="parent">
    <child>//在父组件的child中没有内容,此时没有出现插槽        
        <span>fanfanjun1</span>
        <span slot="content">fanfanjun3</span>
    </child>
</div>复制代码
//子组件child.vue
<div class="child">
    <slot></slot>
    <slot name="content"></slot>
    <span>fanfanjun2</span>
</div>复制代码

渲染结果:string

//父组件parent.vue
<div class="parent">
    <div class="child">//替换父组件child标签
        <span>fanfanjun1</span>//默认由父组件child的里面内容替换
        <span>fanfanjun3</span>//具名插槽替换内容
        <span>fanfanjun2</span>//子组件里面内容
    </div>
</div>复制代码

4,做用域插槽it

//父组件parent.vue
<div class="parent">
    <child>//在父组件的child中没有内容,此时没有出现插槽        
        <span>fanfanjun1</span>
        <span slot="content">fanfanjun3</span>
        <span slot-scope="user" slot="container" v-for="item in user.data">{{item}}</span>
        //v-slot:container="user" or #container="user"
    </child>
</div>复制代码
//子组件child.vue
<div class="child">
    <slot></slot>
    <slot name="content"></slot>
    <slot name="container" :data="data"></slot>//2.6之后写法v-bind:user="data"    <span>fanfanjun2</span>
</div>
 export default {
    data: function(){
      return {
        data: [1,2,3]
      }
    },
 }复制代码

渲染结果:io

//父组件parent.vue
<div class="parent">
    <div class="child">//替换父组件child标签
        <span>fanfanjun1</span>//默认由父组件child的里面内容替换
        <span>fanfanjun3</span>//具名插槽替换内容
        <span>1</span>
        <span>2</span>
        <span>3</span>
        <span>fanfanjun2</span>//子组件里面内容
    </div>
</div>复制代码
相关文章
相关标签/搜索