Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: 更改错别字 #125

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/v2/extend/event.md
Original file line number Diff line number Diff line change
Expand Up @@ -684,7 +684,7 @@ export function eventsMixin (Vue: Class<Component>) {
```
非常经典的事件中心的实现,把所有的事件用 `vm._events` 存储起来,当执行 `vm.$on(event,fn)` 的时候,按事件的名称 `event` 把回调函数 `fn` 存储起来 `vm._events[event].push(fn)`。当执行 `vm.$emit(event)` 的时候,根据事件名 `event` 找到所有的回调函数 `let cbs = vm._events[event]`,然后遍历执行所有的回调函数。当执行 `vm.$off(event,fn)` 的时候会移除指定事件名 `event` 和指定的 `fn` 当执行 `vm.$once(event,fn)` 的时候,内部就是执行 `vm.$on`,并且当回调函数执行一次后再通过 `vm.$off` 移除事件的回调,这样就确保了回调函数只执行一次。

所以对于用户自定义的事件添加和删除就是利用了这几个事件中心的 API。需要注意的事一点,`vm.$emit` 是给当前的 `vm` 上派发的实例,之所以我们常用它做父子组件通讯,是因为它的回调函数的定义是在父组件中,对于我们这个例子而言,当子组件的 `button` 被点击了,它通过 `this.$emit('select')` 派发事件,那么子组件的实例就监听到了这个 `select` 事件,并执行它的回调函数——定义在父组件中的 `selectHandler` 方法,这样就相当于完成了一次父子组件的通讯。
所以对于用户自定义的事件添加和删除就是利用了这几个事件中心的 API。需要注意的一点是,`vm.$emit` 是给当前的 `vm` 上派发的实例,之所以我们常用它做父子组件通讯,是因为它的回调函数的定义是在父组件中,对于我们这个例子而言,当子组件的 `button` 被点击了,它通过 `this.$emit('select')` 派发事件,那么子组件的实例就监听到了这个 `select` 事件,并执行它的回调函数——定义在父组件中的 `selectHandler` 方法,这样就相当于完成了一次父子组件的通讯。

## 总结

Expand Down