技術とかの雑なToday I Learnedメモ

関数をemitとpropsどっちで渡すか

Vue.js の emit と props どっちで関数渡す?

Vue.js $emit 使わないで props で method 渡したほうが良くない? - ROXX 開発者ブログ

emit で親の関数を実行するのと、props で親の関数を渡すの、どちらもあるけど props のほうがわかりやすくね……?と思った。

props で渡せば型定義もできる(type: Function as PropType<FuncType>みたいなやつだけど)

emit で渡せば、一応 emits で一覧を定義できるけど、それよりも props で渡せば required や default(こっちはあんま使わないかもしれないけど)を定義できる。

もう全部 props でいいか?と思ったけど、ブラウザ側で定義されているイベント(scroll とか click とか)は emit で渡しているという意見をもらって、なるほどと思った。

input 要素などの@click(v-on:click)はそもそも emit としてしか渡せないからそこはもちろん emit で渡すんだけど、emit する関数をさらに親で定義している場合はそれも emit のほうがいいのかな?という感じがした。

みなさんはどうしてますか?