vue 插槽slot

具名插槽

使用的时候将需要的内容写在template标签中,并且通过v-slot:name(name表示插槽的名字)指令来指定插入的位置.

<body>
    <div id="app">
        <tab>
            <template v-slot:header>
                <div>我是插到header里面的元素</div>
            </template>
            <template v-slot:section>
                <div>我插入到了section元素里面</div>
            </template>
        </tab>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var tab = {
            template:`
                    <div>
                        <header>
                            <input type="text" placeholder="新不了情" />
                            <slot name="header"></slot>
                        </header>
                        <section>
                            <slot name="section"></slot>
                        </section>
                    </div>`
        }
        var vm = new Vue({
            el:"#app",
            components:{
                tab
            }
        })
    </script>
</body>

无名插槽

直接写需要插入的内容即可,内容将会插入到所有无名插槽中

<body>
    <div id="app">
        <tab>
                      <div>hello world</div>
        </tab>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var tab = {
            template:`
                    <div>
                        <footer>
                            <slot></slot>
                        </footer>
                    </div>`
        }
        var vm = new Vue({
            el:"#app",
            components:{
                tab
            }
        })
    </script>
</body>

vue-cli中应用

父组件

<test-one v-bind:list="message" v-on:getSonsData="sonData">
      //无名插槽
    {{getData}}
    插槽

    <template v-slot:head>
        <p>我的内容插到到具名插槽中</p>
    </template>
</test-one>

子组件

        test页面的子组件
        <div class="header">
            <!--具名插槽-->
            <slot name="head"></slot>
        </div>
        {{list}}
        <button @click="toparent">发送数据给父组件</button>
        <!--插槽-->
        <slot></slot>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • By Leaf 在学习的过程中遇到了Vue的slot元素,开始不知道也不了解它的用途、用法,即然遇到了不懂的知识点...
    HYC_阅读 10,495评论 7 42
  • 插槽,也就是slot,是组件的一块HTML模板,这块模板显示不现实、以及怎样显示由父组件来决定。 插槽模板是slo...
    饥人谷_Leonardo阅读 3,935评论 0 0
  • 一、概念解析 插槽slot:插槽有点像组件中的一个占位符,当别的组件使用这个组件的时候,在这一对标签中又写了其他内...
    klmhly阅读 3,616评论 0 0
  • VUE Vue :数据驱动的M V Vm框架 m :model(后台提供数据),v :view(页面),vM(模板...
    wudongyu阅读 10,782评论 0 11
  • 《我不是药神》 克服一切困难终于去电影院里把心心念的电影看了,不负众望,必须哭一波才算没白看的感觉……🤦‍♀️ 高...
    兔君大人阅读 2,166评论 0 0

友情链接更多精彩内容