Appearance
vue组件之间调用方法
父组件调用子组件方法
$ref调用
父组件
vue
<template>
<div id="father">
<button v-on:click="clickFun">点击</button>
<child ref="child"></child>
</div>
</template>
export default {
name: 'father',
compontents: {
child
},
methods: {
clickFun() {
this.$refs.child.childFun()
}
}
}
子组件
vue
<template>
<div id="child">
<button @click="childFun"></button>
</div>
</template>
export default {
name: 'child',
methods: {
childFun() {
...
}
}
}
子组件调用父组件方法
1. $emit调用
2. $parent调用
子组件
vue
<template>
<div id="child">
<button @click="childFun"></button>
</div>
</template>
export default {
name: 'child',
methods:{
childFun(){
// 通过$emit进行触发
// 第一个参数为父组件监听的事件名,后续参数为父组件方法的参数
this.$emit("fatherFun", params)
// $parent调用
this.$parent.fatherFunction()
}
}
}
父组件
vue
<template>
<div id="father">
<child ref="child" @fatherFun="fatherFunction"></child>
</div>
</template>
export default {
name: 'father',
compontents: {
child
},
methods: {
fatherFunction() {
...
}
}
}