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

自我理解

父子组件使用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属性等于一个自定义对象来接收传过来的自定义名称;
然后就可以通过自定义对象.自定义名称获取传递过来的子组件数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

你六我里六六

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

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

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

打赏作者

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

抵扣说明:

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

余额充值