VUE具名插槽

2023-06-06  本文已影响0人  小黄不头秃
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
    <!-- 
        (1)插槽定义:
            <div class="container">
                    <header>
                        <slot name="header"></slot>
                    </header>
                    <main>
                        <slot></slot>
                    </main>
                    <footer>
                        <slot name="footer"></slot>
                    </footer>
            </div>
        (2)插槽内容
        <base-layout>
            <h1 slot='header'>title</h1>

            <p>text</p>

            <p slot='footer'>endding</p>
        </base-layout>
     -->
    <div id="app">
        <div>test1</div>
        <base-layout>
            <div slot="header">标题</div>
            <p>text</p>
            <p>text</p>
            <div slot="footer">结尾</div>
        </base-layout>
        <br><br><br><br>
        <div>test2</div>
        <base-layout>
            <template slot="header">
                <div>标题</div>
                <div>标题</div>
                <div>标题</div>
            </template>
            <p>text</p>
            <p>text</p>
            <template slot="footer">
                <div>结尾</div>
                <div>结尾</div>
                <div>结尾</div>
            </template>
        </base-layout>
    </div>
    <script src="./vue/vue.js"></script>
    <script>
        Vue.component('base-layout',{
            template:`
            <div>
                    <header>
                        <slot name="header"></slot>
                    </header>
                    <main>
                        <slot></slot>
                    </main>
                    <footer>
                        <slot name="footer"></slot>
                    </footer>
            </div>`
        });
        var vm = new Vue({
            el:"#app",
            data:{},
            methods:{}
        });
    </script>
</body>
</html>
上一篇 下一篇

猜你喜欢

热点阅读