插槽

作者: 灯光树影 | 来源:发表于2018-10-25 19:17 被阅读0次

一、前言

vue中可以使用插槽slot分发内容给子组件,slot可以避免html被转义(不需要使用v-html)。

二、具名插槽

插槽就是在slot标签中直接插入外部传递过来的内容

<div id="app">
    <post-article>
        <div slot="header">header</div>
        <div slot="footer">footer</div>
    </post-article>
</div>
<script>
Vue.component('post-article', {
    template: `<div>
                <slot name="header">default-header</slot>
                <div>content</div>
                <slot name="footer">default-footer</slot>
               </div>`
});
var app = new Vue({
    el: '#app',
    data: {
        count: 0
    }
});
</script>

上面代码渲染出header、content、footer三个div标签。

提示:如果没有<div slot="header">header</div>,那么渲染默认的default-header
补充:可以不使用slot和name特性给slot命名,这是普通插槽,只能有一个。

三、作用域插槽

当传递给slot的内容中数据不一定时,需要获取子组件的数据,这时使用作用域插槽,它可以获取子组件的数据。

<div id="app">
    <todo-list>
        <template slot-scope="props">
            <a href="#">{{ props.item.content }}</a>
        </template>
    </todo-list>
</div>
<script>
Vue.component('todo-list', {
    data: function(){
        return {
            items: [
                {id: 0, content: "do some sports"},
                {id: 1, content: "paint a picture"},
                {id: 2, content: "read a book"}
            ]
        };
    },
    template: `<ul>
                <li 
                    v-for = "item in items"
                    :key = "item.id"
                >
                    <slot :item="item">{{ item.content }}</slot>
                </li> 
               </ul>`
});
var app = new Vue({
    el: '#app',
    data: {
        count: 0
    }
});
</script>

上面代码<slot :item="item">传递item给slot-scope中的值props(可自定义),props变成{"item": ...}

提示:可以使用解构赋值的方式slot-scope="{ item }",这样只需要item.content就可以访问传递过来的值的content。

相关文章

  • vue----slot插槽

    插槽分类 匿名插槽 具名插槽 作用域插槽

  • vue中slot插槽的使用

    插槽的种类:1、默认插槽、具名插槽、作用域插槽、解构插槽、动态插槽几种。转原文:https://www.jians...

  • vue3中的插槽

    插槽 默认插槽 具名插槽,v-slot可以简写为# 动态插槽 #[dynamicSlotName] 作用域插槽(...

  • 2.插槽

    匿名插槽 具名插槽 作用域插槽

  • 深入理解vue中的slot与slot-scope(自 2.6.0

    单个插槽 | 默认插槽 | 匿名插槽首先是单个插槽,单个插槽是vue的官方叫法,但是其实也可以叫它默认插槽,或者与...

  • vue 插槽 slot

    插槽使用 普通插槽 具名插槽 使用具名插槽 从插槽里面传值出来如何接收? 如: 如何判断某个插槽是否被使用 组件内...

  • vue插槽

    默认插槽(没有名字的插槽) 具名插槽(带名字的插槽) 老版 2.6.0以前 新版 作用域插槽(父组件可以获取子组件...

  • Vue总结4-插槽,Vuex,VueRouter

    1.插槽 1.1匿名插槽 52-Vue组件-匿名插槽 ...

  • 组件化高级

    插槽 什么是插槽 生活中有很多地方都有用到插槽,比如电脑的USB插槽,插板上的电源插槽,目的是让我们原来的设备具备...

  • vue 插槽slot

    插槽的定义: 插槽的使用:

网友评论

      本文标题:插槽

      本文链接:https://www.haomeiwen.com/subject/mwvctqtx.html