鶏口牛後な日々

心の赴くまま、やりたいことを仕事に。

Vue.jsで親から子に渡すパラメータについての細かい書き方についてのメモ

v-bindの書き方について混乱していた点

v-bindの基本的な書き方は、

v-bind:<子側のプロパティ>="<親側で渡したいパラメータ>"

だと思う。

混乱したのは以下の2点だと思う。

  • v-bind:(コロン) がない時があるが、その違いは?
  • <親側で渡したいパラメータ> に入れるものについて、 '(シングルクオート) で囲う時とそうでない時の違いは?

まだ完璧に全体像をつかめたわけではないのだが、今回試してみて違いがわかってきたので、ここにまとめておく。 さらに追加情報があったら適宜書き足していくつもり。

親から子に渡すパラメータが data 内で管理している変数の時

【親要素のHTML内のパラメータ渡す書き方】

子要素名(v-bind:<子要素のプロパティ名>="<親要素のdata内で管理している変数名>")

です。

そして、 v-bind: と書くのと、省略して :(コロンのみ) で書くのは同じ意味です。

親から子に渡すパラメータが定数の時

【親要素のHTML内のパラメータ渡す書き方】①

子要素名(v-bind:<子要素のプロパティ名>="'<渡したい定数やテキストベタ書き>'")

ただし、以下の書き方でも通りました。

【親要素のHTML内のパラメータ渡す書き方】②

子要素名(<子要素のプロパティ名>="<渡したい定数やテキストベタ書き>")

定数やテキストベタ書きを渡すのであれば、 v-bind: と書かなくてもいいってことですね。 ただし、v-bind: をつけて渡す場合は、システムが data 内で変数を探してしまうことを避けるために、定数であることを明確に伝えるべく、 '(シングルクオート) で囲む、ということだと思います。

複数つなげる時は、カンマの要不要とかバリエーションあるかと思いましたが、関係ありませんでした。

例1

A(
  :parameter1="data1",
  :parameter2="data2",
  :parameter3="data3"
)

例2

A(
  parameter1="'text1'"
  parameter2="'text2'"
  parameter3="'text3'"
)

上の例1と例2は同様に通りました。

細かいことで時間取られた・・・。整理できたよかったとする。