vue--子组件调用父组件的方法
在做VUE开发的时候,很多时候会遇到需要在子组件调用父组件的方法的时候,具体的实现方式有三种:
第一种:正规做法
示例:父组件(需要:@parentMethods="handleParentMethods")
<template> <editor id="editor" class="editor" @parentMethods="handleParentMethods"></editor> </template> <script> export default { methods: { handleParentMethods: function (str) { alert(str) } } } </script>
子组件调用:
<template>
<button @click="submit">提交</button>
</template>
<script>
export default {
methods: {
submit: function () {
// 子组件中触发父组件方法parentMethods并传值123
this.$emit('parentMethods', '123')
}
}
}
</script>
第二种:直接将父组件方法通过参数的形式进行传递
父组件:(需要::parentMethods="handleParentMethods")
<template>
<editor id="editor" class="editor" :parentMethods="handleParentMethods"></editor>
</template>
<script>
export default {
methods: {
handleParentMethods: function (str) {
alert(str)
}
}
}
</script>
子组件:
<template>
<button @click="submit">提交</button>
</template>
<script>
export default {
props: {
parentMethods: {
type: Function,
default: function(){
return "";
}
}
},
methods: {
submit: function () {
if (this.onsubmit) {
this.parentMethods('123456');
}
}
}
}
</script>
第三种:this.$parent.方法
示例:
this.$parent.parentMethods('123456');

浙公网安备 33010602011771号