vue2 同级组件调用方法
时间: 2024-10-17 17:00:54 浏览: 34
在 Vue.js 2 中,同级组件之间的通信通常通过事件系统或者自定义属性(prop)来完成,而不是直接调用对方的方法。这里简单介绍两种常见的方式:
1. **事件(Event Bus)**:
如果组件A需要触发某个操作并让组件B响应,可以使用Vue官方推荐的事件总线(event bus)模式。创建一个独立的Vue实例作为事件中心,发布事件时,`this.$emit('eventName', data)`;而在组件B上监听这个事件,`this.$on('eventName', (data) => { ... })`。
2. **自定义属性(Prop)**:
直接在 prop 中传递一个函数,然后在接收端调用它。例如,在组件A中,你可以将一个方法通过 prop 传给组件B:
```html
<template>
<b :call-me="myMethodToPass" />
</template>
<script>
export default {
methods: {
myMethodToPass(data) {
// 在这里执行你需要的操作
}
}
};
</script>
```
然后在组件B里:
```html
<template>
<button @click="parentCallMe">调用我的方法</button>
</template>
<script>
import { mapActions } from 'vuex';
export default {
methods: {
parentCallMe() {
this.callMe();
},
...mapActions(['myAction']) // 如果来自Vuex store
},
props: {
callMe: { type: Function, required: true }
}
};
</script>
```
阅读全文