美文网首页
2019-02-14 vue组件基础篇4

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

作者: pingping_log | 来源:发表于2019-02-15 15:18 被阅读0次

    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>
    

    相关文章

      网友评论

          本文标题:2019-02-14 vue组件基础篇4

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