一、子调父
方法一:this.$parent.method
父组件
<template>
<div>
<child/>
</div>
</template>
<script>
import Child from '@/components/Child';
export default {
components: {
Child
},
methods: {
say(msg) {
console.log(msg);
}
}
};
</script>
子组件
<template>
<button @click="$parent.say('hello')">测试</button>
</template>
<script>
export default { };
</script>
方法二:this.$emit(‘fatherMethod’)
父组件
<template>
<div>
<child @say="test"/>
</div>
</template>
<script>
import Child from '@/components/Child';
export default {
components: {
Child
},
methods: {
test(msg) {
console.log(msg);
}
}
};
</script>
子组件
<template>
<button @click="$emit('say', 'hello')">测试</button>
</template>
<script>
export default { };
</script>
方法三:父组件通过props传给子组件
父组件
<template>
<div>
<child :say="say"/>
</div>
</template>
<script>
import Child from '@/components/Child';
export default {
components: {
Child
},
methods: {
say(msg) {
console.log(msg);
}
}
};
</script>
子组件
<template>
<button @click="say('hello')">测试</button>
</template>
<script>
export default {
props: {
say: {
type: Function
}
}
};
</script>
二、父调子
- this.$children[0].method
- this.$refs.child.method
Vue父子组件通信
本文详细介绍Vue.js中子组件如何调用父组件的方法,包括使用this.$parent, this.$emit和父组件通过props传递方法给子组件三种方式。同时,也介绍了父组件调用子组件方法的途径。
7142

被折叠的 条评论
为什么被折叠?



