質問編集履歴

2

誤字訂正

2018/07/11 03:49

投稿

aruto
aruto

スコア175

test CHANGED
File without changes
test CHANGED
@@ -60,9 +60,15 @@
60
60
 
61
61
  //親コンポーネント(App.vue)
62
62
 
63
- <RangeStat v-model="stats" @click="remove" />
63
+ <template>
64
64
 
65
+ <RangeStat v-model="stats"/>
66
+
65
- ・・・
67
+ ・・・
68
+
69
+ </template>
70
+
71
+ <script>
66
72
 
67
73
  var stats = [
68
74
 
@@ -79,6 +85,8 @@
79
85
  { label: 'F', value: 100 }
80
86
 
81
87
  ]
88
+
89
+ </script>
82
90
 
83
91
 
84
92
 
@@ -138,7 +146,7 @@
138
146
 
139
147
  propsで渡したデータは本来編集できないと思うのですが、配列だと編集ができ、変更が親まで伝わってくれます。
140
148
 
141
- 今回の例だとv-modelを使わなくても親コンポーネントから:stats="stats"と指定るだけで動きます。
149
+ 今回の例だとv-modelを使わなくても親コンポーネントから:stats="stats"と指定しpropsで受け取るだけで動きます。
142
150
 
143
151
  それは良くないと思うのでv-modelを使ってみたのですが、先程述べたようにpropsのみで変更できてしまうため、watchのとこは書かなくても動いてしまいます。
144
152
 

1

大きく変更

2018/07/11 03:49

投稿

aruto
aruto

スコア175

test CHANGED
File without changes
test CHANGED
@@ -56,13 +56,11 @@
56
56
 
57
57
  (記載に当たり多少省略してます)
58
58
 
59
-
60
-
61
59
  ```html
62
60
 
63
61
  //親コンポーネント(App.vue)
64
62
 
65
- <RangeStat :stats="stats"/>
63
+ <RangeStat v-model="stats" @click="remove" />
66
64
 
67
65
  ・・・
68
66
 
@@ -106,7 +104,27 @@
106
104
 
107
105
  export default{
108
106
 
109
- props:['stats']
107
+ props:['value'],
108
+
109
+ computed: {
110
+
111
+ stats() {
112
+
113
+ return this.value
114
+
115
+ }
116
+
117
+ },
118
+
119
+ watch: {
120
+
121
+ stats(array) {
122
+
123
+ this.$emit('input',array)
124
+
125
+ }
126
+
127
+ },
110
128
 
111
129
  }
112
130
 
@@ -114,19 +132,19 @@
114
132
 
115
133
  ```
116
134
 
117
- 親から子にpropsでstatsを渡し、子でv-modelを用いて配列の要素を編集しています。
118
-
119
- propsで渡したデータは編集できないと思うのですが、配列だとできてしまい、動いてしまいます。
120
-
121
- とはいえ、これはよろしくないと思うので親からstatsを送るときにv-modelを使いたいと考えています。
122
-
123
- 子からは$emit('input',hogehoge)で送ればいいとは思うのですが、配列に対してどう送ればいいのかわかりません。
124
135
 
125
136
 
137
+ ### 生じている問題
126
138
 
127
- ### とめ
139
+ propsで渡したデータは本来編集できないと思うのですが、配列だと編集ができ、変更が親で伝わってくれます。
128
140
 
141
+ 今回の例だとv-modelを使わなくても親コンポーネントから:stats="stats"と指定するだけで動きます。
142
+
143
+ それは良くないと思うのでv-modelを使ってみたのですが、先程述べたようにpropsのみで変更できてしまうため、watchのとこは書かなくても動いてしまいます。
144
+
129
- ごちゃごちゃちゃたがまとめると
145
+ この実装方法は正しいょうか。
146
+
147
+
130
148
 
131
149
  0. 親から子に配列を渡す。
132
150
 
@@ -136,6 +154,6 @@
136
154
 
137
155
 
138
156
 
139
- これらの流れを実装したいです
157
+ より良い書き方がありましたら教えてください。
140
158
 
141
159
  よろしくおねがいします。