一:通过ref间接调用子组件的办法;
//父组件中
<template>
<div> <Button @click="handleClick">点击调用子组件办法</Button> <Child ref="child"/></div>
</template>
<script>
import Child from './child';
export default {
methods: { handleClick() { this.$refs.child.sing(); },},
}
</script>
//子组件中
<template>
<div>我是子组件</div>
</template>
<script>
export default {
methods: {
sing() { console.log('我是子组件的办法');},
},
};
</script>
计划二:通过组件的$emit、$on办法;
//父组件中
<template>
<div> <Button @click="handleClick">点击调用子组件办法</Button> <Child ref="child"/></div>
</template>
<script>
import Child from './child';
export default {
methods: { handleClick() { this.$refs.child.$emit("childmethod") //子组件$on中的名字 },},
}
</script>
//子组件中
<template>
<div>我是子组件</div>
</template>
<script>
export default {
mounted() { this.$nextTick(function() { this.$on('childmethods', function() { console.log('我是子组件办法'); }); }); },
};
</script>