Vue 面试题 目录

Vue 中如何使用 $on 和 $off 监听和取消事件?

推荐答案

在 Vue 中,$on$off 是用于监听和取消事件的方法。它们通常用于在组件之间进行通信。

使用 $on 监听事件

使用 $off 取消事件监听

示例

-- -------------------- ---- -------
------ ------- -
  --------- -
    -- ----
    ------------------------ ------------------------
  --
  -------- -
    -------------------------- -
      ------------------- ----- ----------- ---------
    -
  --
  --------------- -
    -- ------
    ------------------------- ------------------------
  -
--

本题详细解读

$on 方法

$on 方法用于监听一个自定义事件。它接受两个参数:

  1. 事件名称:一个字符串,表示要监听的事件名称。
  2. 回调函数:当事件触发时执行的回调函数。回调函数可以接收一个参数,通常是事件触发时传递的数据(payload)。

$off 方法

$off 方法用于取消监听一个自定义事件。它接受两个参数:

  1. 事件名称:一个字符串,表示要取消监听的事件名称。
  2. 回调函数(可选):指定要移除的回调函数。如果未提供回调函数,则会移除该事件的所有监听器。

使用场景

  • 组件通信$on$off 通常用于父子组件或兄弟组件之间的通信。例如,父组件可以通过 $emit 触发事件,子组件通过 $on 监听事件并做出响应。
  • 事件管理:在组件销毁前,使用 $off 取消事件监听,避免内存泄漏。

注意事项

  • 事件名称:事件名称是区分大小写的,确保在 $on$off 中使用相同的事件名称。
  • 回调函数:如果使用匿名函数作为回调函数,$off 将无法正确移除监听器,因此建议使用具名函数。
  • 组件销毁:在组件销毁前(如 beforeDestroy 钩子中),应使用 $off 取消所有事件监听,以防止内存泄漏。
纠错
反馈