插槽 的 运用
插槽的使用其实是很简单
首先要明白插槽是使用在子组件中
代码实现:
<div id="app">
    <div class="father">
        <h3>这里是父组件</h3>
        <child>
            <span>菜单1</span>
            <span>菜单2</span>
            <span>菜单3</span>
        </child>
    </div>
</div>
<template id="child">
    <div class="child">
        <h3>这里是子组件</h3>
        <slot></slot>
    </div>
</template>
<script>
    var vm = new Vue({
        el: ‘#app‘,
        data: {},
        components: {
            child: {
                template: ‘#child‘
            }
        }
    });
</script>

slot=‘自定义名字‘ 的属性,<slot><slot> 里面添加 name=‘自定义名字‘ 即可slot 属性,则此处就是默认的插槽,在子组件中的 <slot></slot> 直接就是使用的父组件的默认插槽部分<div id="app">
    <div class="father">
        <h3>这里是父组件</h3>
        <child>
            <span slot="demo1">菜单1</span>
            <span>菜单2</span>
            <span slot="demo3">菜单3</span>
        </child>
    </div>
</div>
<template id="child">
    <div class="child">
        <h3>这里是子组件</h3>
        <slot></slot>
        <slot name="demo3"><slot>
    </div>
</template>
<script>
    var vm = new Vue({
        el: ‘#app‘,
        data: {},
        components: {
            child: {
                template: ‘#child‘
            }
        }
    });
</script>

slot-scope 特性从子组件获取数据:data=data 先传递 data 的数据<div id="app">
    <div class="father">
        <h3>这里是父组件</h3>
        <child>
            <div slot-scope="user">
                {{user.data}}
            </div>
        </child>
    </div>
</div>
<script>
    Vue.component(‘child‘, {
        template:‘‘ +
            ‘<div class="child">\n‘ +
            ‘    <h3>这里是子组件</h3>\n‘ +
            ‘    <slot  :data="data"></slot>\n‘ +
            ‘  </div>‘,
        data: function () {
            return {
                data: [‘zhangsan‘, ‘lisi‘, ‘wanwu‘, ‘zhaoliu‘, ‘tianqi‘, ‘xiaoba‘]
            }
        }
    });
    var vm = new Vue({
        el: ‘#app‘,
    });
</script>

 原文:https://www.cnblogs.com/oceanleader/p/12118683.html