Vueで前から気になってたのですが、やっぱりどうかなと思うので。

公式で見解ってちゃんとあるんだろうか?

Propsは変更するなっていうのはだいたい書いてあるように思うのでその延長かな?


Vueのコンポーネントで下みたいな事をしてるやつをたまに見る。

<input v-model="item.hogehoge" />

props: {
  item: {
    type: Object,
  }
}

Vueのフレームワークとしての考え方的に上記はNGなはず。

Object渡しすると参照でそのまま渡されるのでたまたま上手くいってるだけですよね。

下はダメって言われますしね。

<input v-model="hogehoge" />

props: {
  hogehoge: {
    type: String,
  }
}

Objectで渡した場合はVue側で検出できないから通ちゃってるってだけっぽ。

検出できるようになちゃったら丸ごと潰されたりするのかしら?

影響でかすぎると思うからそれはないかな?


小ネタというか小技的に扱ってる人もいるように思うのですが、

フレームワークの考え方とはあってないよなーと思ってたら

やっぱりそういう議論はあるみたいですね。

やっぱり上記でも

ugly but will work: めっちゃダサいけど動きはする

みたいな感じ。


どうなんでしょうね。個人的にはこれ系の実装は止めた方が良いとは思う。

データフローを明確にするためのルールでしょうし。

とは言ってもやりたくなるのも良く分かるところ。

ままならぬ。。。


どうでも良いのですが、「ugly but will work」ってフレーズが凄く気に入った。

結構そういう時ってありますよね。。。