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

refactor: イベントの用語の整理 #488

Merged
merged 15 commits into from
Jul 10, 2018
Merged

refactor: イベントの用語の整理 #488

merged 15 commits into from
Jul 10, 2018

Conversation

azu
Copy link
Collaborator

@azu azu commented Jun 15, 2018

Fix #455

やること

  • イベントを監視 -> イベントをリッスン
  • イベントを発火(能動) -> イベントをディスパッチ
  • イベントが発火(受動) -> イベントが発生
  • イベントの処理ととして登録するコールバック関数 = イベントリスナー
    • コールバック関数自体のことはリスナー関数と言っていい
  • 書籍上ではイベントリスナーとイベントハンドラーは区別しないことを明記

追記: #463 で議論して上の方針にまとめる。


イベントハンドラとイベントリスナーが混在してる(todoはイベントハンドラ、ajaxはイベントリスナー)ので、統一した方がいい気はする。

早わかり イベントモデル - 檜山正幸のキマイラ飼育記

おそらくこんな感じだとは思うんだけど、この書籍ではこの区別の必要性はないし、書いててもよくわからないので区別しないほうがいい気がする。

addEventListener(イベント名、イベントリスナー、オプション)

type イベントリスナー = イベントハンドラ || { handleEvent: イベントハンドラ }

たとえば次の例では、オブジェクトが発火するイベントのリスナー関数(イベントリスナー)をマップで管理しています。
イベントリスナーとは、イベントが発生したときに呼び出される関数のことです。

このイベントの仕組みを言い換えると「イベントをディスパッチした(イベントが発生)ときにイベントをリッスンしているコールバック関数(イベントハンドラ)を呼び出す」となります。

  • 親クラス(EventEmitter): イベントをディスパッチした時、登録されているコールバック関数(イベントハンドラ)を呼び出すクラス
  • 子クラス(TodoListModel): 値を更新した時、登録されているコールバック関数を呼び出すクラス

個人的には「イベントリスナーを呼び出す」よりも「イベントハンドラを呼び出す」と言いたいからハンドラになっている気がする。

@azu azu requested a review from lacolaco June 15, 2018 10:59
@bot-user
Copy link

bot-user commented Jun 15, 2018

Deploy preview for js-primer ready!

Built with commit f8313b4

https://deploy-preview-488--js-primer.netlify.com

@azu
Copy link
Collaborator Author

azu commented Jun 15, 2018

この辺の用語は文中でももうちょっと説明口調でいれないと混乱しそう。
最初にでたタイミングでいいけど、イベントリスナーはajaxで先にでてくるからその辺を合わせたい

@azu
Copy link
Collaborator Author

azu commented Jun 29, 2018

  • イベントハンドラは イベントリスナーに 統一する refactor: イベントの用語の整理 #488
  • イベントリスナーは イベントハンドラともよばれることがありますが、この書籍では区別しませんと入れる
  • prh統一する

@azu azu mentioned this pull request Jun 29, 2018
4 tasks
@azu
Copy link
Collaborator Author

azu commented Jul 9, 2018

どこでイベントリスナー = イベントハンドラーをするか迷うな

  • Map/Set
  • Ajax(ここではリスナーと言わないでコールバック関数としかいていない)
  • TodoApp

TodoAppは必須だからTodoAppにはいれるか

@azu azu mentioned this pull request Jul 9, 2018
Copy link
Collaborator Author

@azu azu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/cc @lacolaco できたらレビューしてください。

@@ -1,52 +1,52 @@
export class EventEmitter {
constructor() {
// 登録する [イベント名, Set(ハンドラ)] を管理するMap
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

コードは大体コピーなのでスルーして大丈夫。


<!-- textlint-disable prh -->

このようなイベントが発生した際に呼ばれるコールバック関数のことを**イベントリスナー**(イベントをリッスンするものという意味)と呼びます。またイベントリスナーはイベントハンドラーとも呼ばれることがありますが、この書籍ではこの2つの言葉は同じ意味として扱います。
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TodoAppでのイベントリスナーの初登場。
イベントハンドラーと同義と説明してる

@azu azu merged commit 0762e21 into master Jul 10, 2018
@azu azu deleted the event-term branch July 10, 2018 13:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants