zoukankan      html  css  js  c++  java
  • vue中的slot插槽

    1.无名插槽
    <body> <div id="app"> 123 </div> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script type="text/javascript"> //注册组件 Vue.component("my-component",{ template:"<span>Hello World!</span>" }) new Vue({ el:"#app", template:"<my-component>123</my-component>" }) </script> </body>

    结果显示的是:Hello World!(组件中写的123并不显示)

    当使用插槽时

    <body>
            <div id="app">
                123
            </div>
            <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
            <script type="text/javascript">
                
                //注册组件
                Vue.component("my-component",{
                    template:"<span>Hello World!<slot></slot></span>"
                })
                
                new Vue({
                    el:"#app",
                    template:"<my-component>123</my-component>"
                })
                
            </script>
        </body>

    结果显示的是:Hello World!123(组建中写的123显示了)

    <slot></slot>插槽的时候才可以显示自己组件中写的内容。

    2.具名插槽

    <body>
            <div id="app">
                <my-component>
                    <h1 slot="girl">我是女孩</h1>
                    <h1 slot="boy">我是男孩</h1>
                    <span slot>123</span>
                </my-component>
            </div>
            <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
            <script type="text/javascript">
                //注册组件
                Vue.component("my-component",{
                    template:`
                        <div>
                            <slot name="girl"></slot>
                            <slot name="boy"></slot>
                            <slot></slot>
                        </div>`
                })
                
                new Vue({
                    el:"#app"
                })
                
            </script>
        </body>

    显示结果:

    我是女孩

    我是男孩

    123

    3.作用域插槽

    <body>
            <div id="app">
                <my-component>
                    <template slot-scope="a">
                        {{a}}
                    </template>
                </my-component>
    
            </div>
            <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
            <script type="text/javascript">
                //注册组件
                Vue.component("my-component", {
                    template: `
                    <div>
                        <slot hah="hi"></slot>
                    </div>`
                })
    
                new Vue({
                    el: "#app"
                })
            </script>
        </body>

    显示结果为:

    { "hah": "hi" }

  • 相关阅读:
    BZOJ5321 JXOI2017加法(二分答案+贪心+堆+树状数组)
    BZOJ5089 最大连续子段和(分块)
    Codeforces 893F(主席树+dfs序)
    BZOJ5092 分割序列(贪心)
    Codeforces Round #525 Div. 2 自闭记
    364. Nested List Weight Sum II
    362. Design Hit Counter
    369. Plus One Linked List
    370. Range Addition
    366. Find Leaves of Binary Tree
  • 原文地址:https://www.cnblogs.com/150536FBB/p/11362220.html
Copyright © 2011-2022 走看看