描述: 在父组件里同时引入2个子组件(child1child2),在child2里想调用child1组件里的某个方法。

实现方式:

child2里用this.$emit('fun')传到父组件里

在父组件里,给child1组件加上ref="child1Container"属性

methods里定义fun方法(this.$refs.child1Container.某个方法()

父组件
// 父组件
<template>
    <child1 ref="child1Container"></child1>
    <child2 @save="save"></child2>
</template>
<script>
    import Header from './components/child1';
    import SubRoute from './components/child2';
 
    export default {
        name: 'App',
        components: {
            child1,
            child2
        },
        methods: {
            save(){
                this.$refs.child1Container.aaa();
            }
        }
    }
</script>
子组件1
// 子组件1
<template>
    <div>我是子组件11111</div>
    <div @click="aaa"></div>
</template>
<script>
    export default {
        name: 'App',
        methods: {
            aaa(){
                console.log('我是子组件1里面的方法");
            }
        }
    }
</script>
子组件2
<template>
    <div>我是子组件22222</div>
    <div @click="save"></div>
</template>
<script>
    export default {
        name: 'App',
        methods: {
            save(){
                this.$emit('save');
            }
        }
    }
</script>
Logo

前往低代码交流专区

更多推荐