🖥

#Vue で props が文字列として component で受け渡されてしまう ( props as string or integer

2023/09/01に公開

解決

コロン : をつけて bind で 子component に props を渡す

<template>
  <div>
-    <Counter count="1"/>
-    <Counter count="2"/>
-    <Counter count="3"/>
+    <Counter :count="1"/>
+    <Counter :count="2"/>
+    <Counter :count="3"/>
  </div>
</template>

bind じゃなくてもとりあえず props を渡せているようだけど、これは何なのだろう

Code

pages/counter-three.vue

<template>
  <div>
    <Counter count="1"/>
    <Counter count="2"/>
    <Counter count="3"/>
  </div>
</template>

<script>
import Counter from '~/components/Counter.vue'

export default {
  components: {
    Counter
  }
}
</script>

components/Counter.vue

<template>
  <div>
    <h2>
      Count: {{ count }}
    </h2>
    <input type="button" @click="incrementCounter" value="Increment!">
  </div>
</template>

<script>
export default {
  props: {
    count: {
      type: Number,
      default: 1
    },
  },
  methods: {
    incrementCounter (e) {
      this.count = this.count + 1
    }
  }
}
</script>

インクリメントすると文字が増えてしまう

image

Original by Github issue

https://github.com/YumaInaura/YumaInaura/issues/3140

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2020-05-05

Discussion