作用域插槽使用-使用笔记

自我理解

父子组件使用data数据时,之前我都是在子组件定义data数据,在子组件中进行使用;
在父组件中定义的data数据,在父组件中进行使用;
使用作用域插槽可以将子组件的数据通过插槽给传递给父组件,在父组件中进行类型展示

要点

子组件中使用
1.子组件存在data数据

// 子组件child-cpn
data () {
  return {
    dataList: ['tsz', 'swk', 'zbj', 'shs']
  }
}

2.子组件需要有插槽slot

<h2>我是子组件标题</h2>
<slot></slot>

3.在slot标签/元素上传递数据,就像父组件给子组件传参一样动态把子组件的数据传递给父组件
语法:冒号后面跟着自定义名字=“需要传递给父亲的数据”

<slot :data="dataList"></slot>

父组件中使用
4父组件在使用子组件时,内部需要有template元素/标签,该标签里面只能有一个最大的div盒子

<child-cpn>
  <template>
    <div></div>
  </template>
</child-cpn>

5.template元素/标签上设置slot-scope属性=“这是一个对象-自定义对象”,然后就可以在div盒子中通过自定义对象.自定义名字获取传递过来的数据

// 渲染成span标签练习
<child-cpn>
  // 在这我使用a接收,a是一个对象
  <template slot-scope="a">
    <div>
      // 在这里就可以使用a.data获取到子组件内部传递过来的数据,然后遍历出来
      <span v-for="item in a.data" :key="item">{{ item }}</span>
    </div>
  </template>
</child-cpn>

// 渲染成button标签练习
<child-cpn>
  // 在这我使用b接收,b是一个对象
  <template slot-scope="b">
    <div>
      // 在这里就可以使用b.data获取到子组件内部传递过来的数据,然后遍历出来
      <button v-for="item in b.data" :key="item">{{ item }}</button>
    </div>
  </template>
</child-cpn>

自我感觉a和b其实是同一个对象,都可以通过a.data/b.data获取数据;

总体思路

子组件数据通过自定义名称动态传递给父组件;
父组件template通过slot-scope属性等于一个自定义对象来接收传过来的自定义名称;
然后就可以通过自定义对象.自定义名称获取传递过来的子组件数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在 Vue 中,作用域插槽是一种特殊的插槽,可以让父组件向子组件传递数据。通过作用域插槽,子组件可以在插槽内部访问到父组件传递的数据,并且可以根据这些数据来渲染内容。 要在 Vue 中使用作用域插槽,首先需要在父组件中定义一个插槽,并在插槽使用 `<template>` 标签来定义子组件要渲染的内容。在 `<template>` 标签中,你可以使用 `slot-scope` 属性指定一个变量名,用于访问父组件传递的数据。 下面是一个示例代码,展示了如何在 Vue 中使用作用域插槽: ```html <!-- 父组件 --> <template> <div> <child-component> <!-- 定义一个作用域插槽 --> <template v-slot:default="slotProps"> <p>{{ slotProps.message }}</p> </template> </child-component> </div> </template> <!-- 子组件 --> <template> <div> <slot></slot> </div> </template> <script> export default { name: 'ChildComponent', } </script> ``` 在上面的代码中,父组件中使用了 `v-slot:default="slotProps"` 来定义了一个名为 `default` 的作用域插槽,并将父组件传递的数据绑定到 `slotProps` 变量上。在子组件中,使用 `<slot></slot>` 来渲染插槽内部的内容。 这样,父组件中的内容会被传递到子组件的插槽中,并且可以在插槽内部使用 `slotProps` 变量来访问父组件传递的数据。在上面的示例中,插槽内部渲染了一个 `<p>` 标签,并通过 `slotProps.message` 来显示父组件传递的消息。 希望能帮到你!如果还有其他问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

你六我里六六

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

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

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

打赏作者

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

抵扣说明:

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

余额充值