2019-02-14 vue组件基础篇4

slot用法

  • 单个slot
<div id="app">
        <child-component>
            <p>分发的内容</p>
            <p>更多分发的内容</p>
        </child-component>
</div>
<script>
        Vue.component('child-component', {
            template: '<div><slot><p>如果父组件没有插入内容,我将作为默认出现</p></slot></div>'
        })
</script>
  • 具名slot
<div id="app">
        <child-component>
            <h2 slot="header">标题</h2>
            <p>正文内容</p>
            <p>更多的正文内容</p>
            <div slot="footer">底部信息</div>
        </child-component>
    </div>
    <script>
        Vue.component('child-component', {
            template: '\
            <div class="container"> \
                <div class="header"> \
                    <slot name="header"></slot> \
                </div> \
                <div class="main"> \
                    <slot></slot> \
                </div> \
                <div class="footer"> \
                    <slot name="footer"></slot> \
                </div> \
            </div>'
        })
    </script>
  • 作用域插槽

父组件中使用了<template>元素,而且拥有一个scope="props"的特性,这里的props只是一个临时变量,就像v-for="item in items"里面的item一样。template内可以通过临时变量props访问来自子组件插槽的数据msg。

<div id="app">
        <ping>
            <template scope="props">
                <p>来自父组件的内容</p>
                <p>{{ props.msg }}</p>
            </template>
        </ping>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
        Vue.component('ping', {
            template: '<div><slot msg="这是子组件的内容"></slot></div>',
        })

        var app = new Vue({
            el: '#app',
        })
</script>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 组件(Component)是Vue.js最核心的功能,也是整个架构设计最精彩的地方,当然也是最难掌握的。...
    六个周阅读 5,652评论 0 32
  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 5,079评论 0 29
  • 【2019-3-4更新】Vue 2.6+修改了部分语法,对插槽的使用有了较多的更新。在本文中笔者在相应位置给出了更...
    果汁凉茶丶阅读 10,295评论 2 36
  • VUE Vue :数据驱动的M V Vm框架 m :model(后台提供数据),v :view(页面),vM(模板...
    wudongyu阅读 5,426评论 0 11
  • 亲爱的自己,这两天你辛苦了。孩爸出差,妈妈住院,小宝生病。早晨做饭,送孩,中午买菜,做饭,接孩子,吃过整理,送孩子...
    Grit888阅读 99评论 1 1