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 のほうがいいのかな?という感じがした。
みなさんはどうしてますか?