Vue 3.x 组件的自定义事件v-on: 和 $emit

v-on: 指令可以简写成 @

自定义事件:

有时我们的子组件中会有一些事件和数据需要传递到父组件,例如我们点击了子组件中的按钮,那么这个按钮可能会触发某个方法,甚至传递了一些参数。这时我们的父组件就需要对事件进行处理或验证。

一、自定义组件中,子组件获取父组件的数据

父组件:

<!-- 自定义事件 -->
    <!-- 尽管子组件内部不能改变prop的值,但子组件能把自己的数据传递给父组件 -->
    <div :style="{ fontSize: font + 'em' }">
      当点击按钮的时候,这里的字体都会变大
    </div>
    <indefin @parentOnBig="onBig" @parentDownFont="downFont" />

父组件的methods:

子组件给获取父组件的数据是方法一                     父组件获取子组件是二

 methods: {
    // 父组件的方法一  父组件传数据给子组件
    onBig() {
      this.font += 0.2;
    },

    // 父组件获取子组件传递的数据 一样也是调用组件时,定义一个方法,同上,但是方法中要加入参数,用于获
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
this.$on和this.$emitVue.js组件之间通信的方法。 this.$on用于在当前组件上监听一个自定义事件。当该事件被触发时,会执行对应的回调函数。可以通过this.$on(eventName, callback)来绑定事件监听器。 this.$emit用于触发一个自定义事件。可以通过this.$emit(eventName, data)来触发事件,并传递数据给其他组件。 在给定的代码示例中,Student组件通过this.$bus.$emit('hello', 666)触发了一个名为hello的自定义事件,并传递了数据666给School组件。 而School组件则通过this.$bus.$on('hello', (data) => { console.log('我是School组件,我收到了数据:', data); })监听了hello事件,并在回调函数中打印出收到的数据。 这样,Student组件通过this.$emit触发了一个事件,而School组件通过this.$on监听到了这个事件,并执行了相应的代码,实现了组件之间的通信。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [[vue] 全局事件总线 this.$bus.$emit this.$bus.$on ,可以实现任意组件间通信](https://blog.csdn.net/qq_14993591/article/details/121221114)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [组件之间使用this.$bus.$emit(),this.$bus.$on(), this.$bus.$off(event)](https://blog.csdn.net/Cool_so_cool/article/details/116234145)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值