1. 程式人生 > >Vue slot分發內容

Vue slot分發內容

charset 裏的 插入 tro ron container one str lang

1、概述

slot:混合父組件的內容和子組件的模板。

slot分發的內容,作用域在父組件上。

2、單個slot

子組件使用<slot>,在父組件模板裏,插入子組件標簽裏的內容替換子組件slot標簽以及它的內容。

<!DOCTYPE html>
<html lang="zh">

    <head>
        <meta charset="UTF-8" />
        <title>Vue</title>
    </head>

    <body>
<div id="app"> <my-component> <p>分發的內容</p> <p>更多分發的內容</p> </my-component> </div> <script src="https://cdn.bootcss.com/vue/2.5.9/vue.min.js"></script> <
script type="text/javascript"> Vue.component(my-component, { template: `<div> <slot> <p>如果父組件沒有插入內容,我將作為默認內容出現</p> </slot> </div> ` });
new Vue({ el: "#app" }) </script> </body> </html>

3、具名slot

<!DOCTYPE html>
<html lang="zh">

    <head>
        <meta charset="UTF-8" />
        <title>Vue</title>
    </head>

    <body>
        <div id="app">
            <my-component>
                <h2 slot=‘header‘>標題</h2>
                <p>正文內容</p>
                <div slot=‘footer‘>底部信息</div>
            </my-component>
        </div>
        <script src="https://cdn.bootcss.com/vue/2.5.9/vue.min.js"></script>
        <script type="text/javascript">
            Vue.component(my-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>
                `
            });
            new Vue({
                el: "#app"
            })
        </script>
    </body>

</html>

Vue slot分發內容