Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Vue の Input における State は親で持つべきか子で持つべきか

t0yohei
December 20, 2024
2

Vue の Input における State は親で持つべきか子で持つべきか

t0yohei

December 20, 2024
Tweet

Transcript

  1. 用語整理: reactive な state(リアクティブな状態 ) - Vue.js で言うと ref(), reactive()

    関数で初期化される変数 - reactive な state - const hoge = ref(‘hoge’) - reactive じゃない値 - const fuga = ‘fuga’ - let piyo = ‘piyo’ - 単に state と言う場合は、この reactive な stateを刺すことが多い(多分) - この発表でも、以後 state といった場合は reactive な state を指します
  2. ref と defineExpose を使うパターン メリット state は子で持っている 1 つだけなの で管理はしやすい

    デメリット 親・子・孫と階層が深くなってくると、 末端の state 取得が大変
  3. 親でもStateを持って、子の更新を監視するパターン メリット 親の state が子の state と同期してい るので、親での子の state 取得が簡

    単(と言うか不要) デメリット 親・子・孫と階層が深くなってくなるご とに、 state が増えてしまい管理が大 変 (子だけ別の値になっちゃうとか...)
  4. 子に State を持たせないパターン メリット - State は 1 つなので状態管理が 楽

    - 親で State を管理しているので、 子の state 取得が簡単(と言うか 不要) デメリット 実際の入力値を後から親の State で 上書きする形なので、上書きに失敗 すると DOM の値と親の State が別 値になってしまう危険性がある