孙卫琴的《精通Vue.js》读书笔记-插槽slot的基本用法

本文介绍如何使用Vue.js中的插槽组件特性,使子组件能够接收并显示来自父组件的内容,实现灵活的组件间数据传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文参考孙卫琴,杜聚宾所创作的 <<精通Vue.js: Web前端开发技术详解>>一书
在这里插入图片描述

Vue组件可以像DOM元素一样插入到父组件的模板中。许多DOM元素都具有内容,例如以下

元素的内容为“Hello”:

<div>Hello</div>

那么,是否可以为Vue组件提供内容呢?答案是肯定的,可以使用Vue的插槽组件来实现。如图1所示,组件的工作机制如下:
(1)在子组件的模板的特定位置插入组件,表示此处存在一个插槽。
(2)父组件的模板为子组件模板中的组件提供内容,子组件模板的组件读取父组件提供的内容,并把它插入到子组件模板中。
在这里插入图片描述

图1 组件的工作机制

在例程1的basic.html中有一个组件,在它的模板中插入了组件:

template: '<div><slot></slot></div>'

在basic.html中,根组件就是组件的父组件。在根组件的模板中,为组件提供了内容“Hello”:

<display class="pinkbox">Hello</display>

组件模板中的组件能够读取以上内容“Hello”,并把它插入到组件的模板中。
例程1 basic.html

    <style>
      .pinkbox {
        width: 200px;
        height: 25px;
        background-color: pink;
        text-align:center
      }
    </style>  

    <div id="app">
      <display class="pinkbox">Hello</display>
    </div>

    <script>
      const app=Vue.createApp({ })
      app.component('display', {
        template: '<div><slot></slot></div>'
      })
      app.mount('#app')
    </script>

通过浏览器访问basic.html,会得到如图2所示的网页。
在这里插入图片描述

图2 basic.html的网页

根组件模板中的组件渲染后的结果为:

<div class="pinkbox">Hello</div>

由此可见,组件模板中的组件就像占位标记,它能够把父组件提供的内容插入到子组件模板中组件所在的位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java技术集锦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值