插槽学习

1.插槽
子组件<child>里的内容不会被渲染,子组件template中加入<slot>元素占位便能渲染父组件<child>标签下的内容,<slot>标签内可放默认展示内容

<div id='root'>
        <child>
            <p>hello</p>
        </child>
    </div>
    <script>
        Vue.component('child',{
            props:['content'],
            template:'<div><p>helloo</p><slot></slot></div>'
        })
        var vm = new Vue({
            el:'#root'
        })
    </script>

2.具名插槽
当需要多个插槽时,可以使用<slot>的特性:name

    <div id='root'>
        <child>
            <div class="header" slot='header'>header</div>
            <div class="footer" slot='footer'>footer</div>
        </child>
    </div>
    <script>
        Vue.component('child',{
            props:['content'],
            template:'<div><slot name="header"></slot><p>helloo</p><slot name="footer"></slot></div>'
        })
        var vm = new Vue({
            el:'#root'
        })
    </script>

3.作用域插槽
调用了两次child组件,因为调用的是同一个子组件,所以显示的内容完全一样。作用域插槽的作用是在每次调用时能有各自的渲染效果。

<div id="root">
        <child>
            <template slot-scope="props"><!--定义一个插槽,该插槽必须放在template标签内-->
                <li>{{props.value}}</li><!--定义使用渲染方式-->
            </template>
        </child>
        <child>
            <template slot-scope="props">
                <h1>{{props.value}}</h1><!--定义不同的渲染方式-->
            </template>
        </child>
    </div>
    <script>
        Vue.component('child',{
            data: function(){
                return {
                    list:[1,2,3,4]
                }
            },
            template: `<div>
                            <ul>
                                <slot v-for="value in list" :value=value>//使用slot占位
                                </slot>
                            </ul>
                        </div>`
        })
        var vm=new Vue({
            el: '#root'
        })
    </script>

原文:https://blog.csdn.net/willard_cui/article/details/82469114

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 阅读之前 本文主要参照了Vue官方文档的插槽部分说明,中间加入的自己的理解,写的比较简洁易懂。各位看官可以对照官方...
    YouthInXian阅读 1,227评论 0 2
  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 5,185评论 0 29
  • 【2019-3-4更新】Vue 2.6+修改了部分语法,对插槽的使用有了较多的更新。在本文中笔者在相应位置给出了更...
    果汁凉茶丶阅读 10,510评论 2 36
  • Vue的组件提供了一个非常有用的特性,slot插槽,它让组件的实现变的更加灵活。我们平时在开发组件库的时候,为了让...
    LoveBugs_King阅读 5,455评论 0 0
  • 我有事好与老公商量,老公不配合,时间一长培养了我的独立,自信。 我从小生长在和睦的家庭里,我妈有事就与我爸商量。我...
    石头缝里的小嫩芽变大树阅读 320评论 0 2

友情链接更多精彩内容