给插槽(slot)绑定事件·

24 篇文章 1 订阅
14 篇文章 0 订阅

给插槽(slot)绑定事件

背景: 现在有一个组件,它里面有一个插槽,需要实现不管往插槽里面添加什么,都要能让他点击之后可以让组件里面的数据的值+1

实现思路 可以运用 vue 的作用域插槽

  1. 先将需要点击之后运行的方法通过作用域插槽传递给调用该组件的页面
<template>
  <div>
    <h1>{{ num }}</h1>
    <slot :add-num="addNum">
      <button @click="addNum">add</button>
    </slot>
  </div>
</template>

<script setup>
import { ref } from "@vue/reactivity";

const num = ref(10);
function addNum() {
  num.value++;
}
</script>
  1. 在调用组件的页面拿到该方法并绑定该方法
<template>
  <add>
    <template v-slot="{ addNum }">
      <h1 @click="addNum">点击我就可以啦</h1>
    </template>
  </add>
</template>

<script setup>
import Add from "./components/add.vue";
</script>

结果: 点击该h1标签时组件中的num也会+1

这样就可以实现不管插槽中传递什么东西,都可以来执行某个事件方法

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

易风有点疯

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

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

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

打赏作者

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

抵扣说明:

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

余额充值