vue-插槽(slot)

本文介绍了Vue.js中插槽(Slot)的使用,通过实例展示了如何自定义组件并利用slot进行内容分发。通过在todo组件中定义插槽,并在父组件中插入todo-title和todo-items子组件,实现了内容的模块化。示例代码详细解释了组件间的绑定过程,帮助理解Vue.js的组件通信和内容插入机制。
摘要由CSDN通过智能技术生成

插槽其实是为了维护的负担,就相当于,把每一块的内容给模块化。使用的是 标签实现的


执行过程:首先自定义三个组件,名字分别是todo、todo-title、todo-items,然后在todo这里边,通过使用slot标签的name来绑定这个组件,然后在id为app的div里边使用 slot绑定这个标签,至此这个才算是把它们全部绑定起来了。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>插槽</title>
</head>
<body>

    <div id="app">
        <todo>
            <!--v-bind:title="title"等价于 :title="title"-->
            <todo-title slot="todo-title" v-bind:title="title"></todo-title>
            <todo-items slot="todo-items" v-for="item in items" :item="item"></todo-items>
        </todo>
    </div>

    <!--引入vue的cdn-->
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
    <script>
        Vue.component("todo",{
            template: "<div>\
                            <slot name='todo-title'></slot>\
                            <ul>\
                                <slot name='todo-items'></slot>\
                            </ul>\
                        </div>"
        });

        Vue.component("todo-title",{
            props: ["title"],
            template: "<div>{{title}}</div>"
        });

        Vue.component("todo-items",{
            props: ["item"],
            template: "<li>{{item}}</li>"
        });

        var vm = new Vue({
            el: "#app",
            data: {
                title: "四大名著",
                items: ["红楼梦","西游记","三国演义","水浒传"]
            }
        });
    </script>

</body>
</html>

结果如下

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值