2020/3/13

Vueコンポーネントの中での変数初期化について

コンポーネントから参照される変数は

private form!: HogeForm; ・・・①

のような書き方をするとリアクティブにならないので注意

!をつけると「その値は絶対存在する(undefinedにならない)」意味が付加されるので,コンポーネントから参照された時にバグの原因になる

なので,

private form: HogeForm | null = null; ・・・②

のように初期化をしてやること,そしてコンポーネント側ではv-if=“form”を加えておくこと

①と②の状態の差異は,console.log()で出力した時にわかる

②の場合は添付画像のように

_ob_: Observer


get content: f reactiveGetter()


set content: f reactiveSetter()

というのがログに加わりリアクティブ になっていることがわかる

逆に①の場合は上記の表記が消えてしまい,リアクティブ にならない

(オブジェクトに変更が加わってもgetterが発火せず,画面表示の値が切り替わらない)


あと1日がんばろう