javascript - 更改同级组件 Vue.JS 2.0 中组件数据的状态

标签 javascript vue.js events vuejs2 event-handling

给定:

<parent-element>
    <sibling-a></sibling-a>
    <sibling-b></sibling-b>
</parent-element>

我怎样才能访问click siblingA 中按钮上的事件将 sibling-b 中的某些值更改为另一个值使用$emit(…)

最佳答案

@craig_h 是正确的,或者您可以使用 $refs,例如:

<parent-element>
    <sibling-a @onClickButton="changeCall"></sibling-a>
    <sibling-b ref="b"></sibling-b>
</parent-element>

在父方法中:

methods: {
    changeCall() {
      this.$refs.b.dataChange = 'changed';
    }
  }

在兄弟A中:

Vue.component('sibling-a', {
  template: `<div><button @click="clickMe">Click Me</button></div>`,
  methods: {
    clickMe() {
      this.$emit('onClickButton');
    }
  }
});

在兄弟B中:

Vue.component('sibling-b', {
  template: `<div>{{dataChange}}</div>`,
  data() {
    return {
      dataChange: 'no change'
    }
  }
});

关于javascript - 更改同级组件 Vue.JS 2.0 中组件数据的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46342875/

相关文章:

javascript - 合并 D3 中具有共同值的对象

javascript - reCaptcha 中的阻塞帧

javascript - Chrome 中 Webkit 全屏导致布局变形

c# - 事件代码是否比 C# 中的虚拟/重写方法更适合缓存?

javascript - JavaScript 中的鼠标滚轮、滚轮和 DOMMouseScroll

javascript - 如何查找某个类的所有子元素并检查是否有空?

javascript - 格式良好的 JSON 文件

javascript - 基于计算属性数组的 Vuejs 输入绑定(bind)

firebase - 无法弄清楚如何使用 Gridsome-Plugin-Firestore

python - 按 T​​ab 或 Enter 键时获取 QTableView 单元格值