vue 中 $emit的使用

也可以参考官网的:vm-emit

作用:子组件想要调用到父组件的方法。

使用$emit触发父组件中写好的方法。

标识 :

 

如,父组件中使用子组件IndexFrom,并向子组件传递一个叫closed的方法:

      <IndexFrom v-on:closed="closed" if="online"></IndexFrom>

这个方法写在父组件中: 

    closed() {
      this.online = false;
    },

 

在子组件中调用:

当点击关闭的时候,触发父组件中定义的方法。

    <div class="mask" @click="close">关闭</div>

子组件中定义的方法:其中 this.$emit("closed");中的closed是父组件方法的别名,可自取。

    close() {
      this.$emit("closed");
    },

 

### Vue3 中 `$emit` 的使用方法 在 Vue 3 中,`$emit` 是实现父子组件间通信的重要机制之一。通过 `emits` 选项可以定义一个组件能够触发的事件列表。 #### 定义可触发事件 为了使代码更加健壮并提高开发体验,在子组件内声明允许发出的事件名: ```javascript export default { name: 'ChildComponent', emits: ['custom-event'], // 显式声明可触发的自定义事件 } ``` 当需要从子组件向父组件传递消息时,则可以通过调用 `this.$emit()` 方法来触发这些已注册过的事件[^1]。 #### 触发事件并向上传递参数 假设有一个按钮点击后想要通知父级发生了某些变化的情况: ```html <template> <button @click="handleClick">点击我</button> </template> <script> export default { methods: { handleClick() { this.$emit('custom-event', { message: '来自子组件的信息' }); } } }; </script> ``` 这段代码展示了如何利用 `$emit` 发送带有载荷的数据给上级组件[^4]。 #### 父组件监听子组件事件 为了让父组件能响应上述由子组件发起的动作,可以在模板中使用 `v-on:` 来绑定对应的处理函数: ```html <template> <div class="parent"> <!-- 监听名为 custom-event 的事件 --> <child-component v-on:custom-event="handleCustomEvent"></child-component> </div> </template> <script> import ChildComponent from './components/ChildComponent.vue'; export default { components: { ChildComponent }, methods: { handleCustomEvent(data) { console.log(`接收到来自子组件的消息:${data.message}`); } } }; </script> ``` 此部分说明了怎样设置好监听器以便于捕获到下层传来的信号,并对其进行适当的操作[^3]。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值