Vue.js V2を使っています。
子要素の子コンポーネントをクリックすると、
複数ある子要素のすべての色が変わるし、親要素の色も変わる、
そんなものを作りたいのです。
子要素から親要素へは、this.$emit
で伝達できると思うのですが、兄弟への伝達方法がわかりません。
親から子の要素を動的に変更するにはどのようにすればいいでしょうか。
下記はイメージのVue.jsファイルです。
親コンポーネント?
parrent.vue
1<tepmplate> 2 <div> 3 <brother @clickChildren="changeColor($event)" :color="000000"></brother> 4 <brother @clickChildren="changeColor($event)" :color="000000"></brother> 5 </div> 6<template> 7 8<script> 9 new Vue({ 10 data(){ 11 return { 12 color: "000000", 13 } 14 } 15 methods: { 16 changeColor(color){ 17 this.color = color 18 // 他の兄弟の色も変更する処理を加えたい 19 } 20 } 21 }) 22<script>
子のVueコンポーネント
children.vue
1<tepmplate> 2 <div @click="emitEvent"></div> 3<template> 4 5<script> 6 new Vue({ 7 data() { 8 return { 9 color: "000000" 10 } 11 } 12 methods: { 13 emitEvent: function(){ 14 this.$emit("clickChildren", this.color) 15 } 16 } 17 }) 18<script>
全くシンクロさせるような形で、兄弟の要素も、親の要素もすべて同じ色になるような形がいいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/03 17:04
2021/02/03 23:29
2021/02/03 23:32