子页面
<template>
</template>
<script>
methods:{
testA(){}
}
</script>
父页面
<template>
</template>
<script>
methods:{
testB(){}
}
</script>
想请教各位代码怎么写
https://blog.csdn.net/qq_37284843/article/details/123227189
父子之间调用方法比较简单,这里简单说下,比如子要调用父组件的方法,使用 this.$parent.xxx()
即可。
而如果你需要的是非父子组件间的调用,有两个思路,第一个是消息订阅与发布,第二个是全局事件总线。他们俩的作用都是可以任意组件间通信,我粗略讲解一下全局事件总线的用法,假设B要调用A的testA
方法,做法如下:
1、在 main.js 中注册 $bus
new Vue({
...
beforeCreated() {
Vue.prototype.$bus = this // 安装全局事件总线
}
...
})
2、在A组件的中写如下语句
methods() {
testA(参数) {...}
},
mounted() {
this.$bus.$on('testB', this.testA)
}
3、在B组件需要调用 testA 的地方,写如下语句
this.$emit('testB', 参数)
备注:当然如果你只是想在多个地方用同个方法,就把方法提取到公共文件中,通过在 main.js 中全局引入,就能在各个地方都使用该函数方法了
只能在父窗口与子窗口之间互相调用,使用$emit关键字调用父窗口的方法。
A\B没有嵌套关系的话 很难 。
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!