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" }

  • 相关阅读:
    B+树Java代码实现以及测试
    TreeMap核心源码实现解析
    B树Java代码实现以及测试
    二叉树BinaryTree构建测试(无序)
    HashMap、HashTable差异详解
    TreeMap源码实现类中文全解析
    注解Annotation原理详解及其应用示例
    SpringCloud之Config配置中心+BUS消息总线原理及其配置
    在浏览器输入 URL 回车之后发生了什么
    SpringCloud之Zuul网关原理及其配置
  • 原文地址:https://www.cnblogs.com/150536FBB/p/11362220.html
Copyright © 2011-2022 走看看