美文网首页
Vue子组件调用父组件的方法(组件通讯)

Vue子组件调用父组件的方法(组件通讯)

作者: 不忘初心_d | 来源:发表于2019-08-27 10:51 被阅读0次

欢迎加我技术交流QQ群 :811956471

前言:子组件调用父组件方法是经常会用到的功能,时间久了不接触vue就好容易忘记,今天特意做个小笔记吧。

方法一:this.$parent.要调用的方法名称

准备工作:首先建两个组件:home组件和HelloWorld组件,在home组件中引用HelloWorld组件

示例:

//父组件:
<template>
  <div class="home">
    <HelloWorld></HelloWorld>
  </div>
</template>
<script>
  import HelloWorld from '@/components/HelloWorld.vue'
  export default {
    name: 'home',
    components: {
      HelloWorld
    },
    methods: {
      HelloWorldParent() {
        console.log("HelloWorld成功调用了其父组件方法")
      }
    }
  }
</script>

//子组件:
<template>
  <div class="hello">
    <h1>我是HelloWorld组件</h1>
    <button @click="userParentFn()">调用父组件方法一</button>
  </div>
</template>
<script>
  export default {
    name: 'HelloWorld',
    methods: {
      userParentFn() {
        this.$parent.HelloWorldParent(); //HelloWorld成功调用了其父组件方法
      },
    }
  }
</script>

总结:感觉这个方法最简单了~~~没有什么好主意的地方。可以直接再子组件 created生命周期里调用这个方法,还可以传递参数:
 created() { this.$parent.HelloWorldParent(); //HelloWorld成功调用了其父组件方法 },

=======================================================================================

方法二:用$listeners,支持多层级嵌套组件,如果是传参用

$attrs

父组件中:
<template>
  <div class="home">
    <HelloWorld @fatherMethod="HelloWorldParent"></HelloWorld>
  </div>
</template>
<script>
  import HelloWorld from '@/components/HelloWorld.vue'
  export default {
    name: 'home',
    components: {
      HelloWorld
    },
    methods: {
      HelloWorldParent(val) {
        console.log("HelloWorld成功调用父组件方法",val)
      }
    }
  }
</script>

子组件中:
<template>
  <div class="hello">
    <h1>我是HelloWorld组件</h1>
    <button @click="userParentFn()">调用父组件方法一</button>
  </div>
</template>
<script>
  export default {
    name: 'HelloWorld',
    methods: {
      userParentFn() {
       this.$listeners.HelloWorldParent("我是子组件")
      },
    }
  }
</script>
总结:改方法需要再子组件中调用的事件必须先在父组件调用子组件的时候在这个组件上进行绑定才可以

相关文章

  • vue.js 核心知识点三

    目录 - 3.1 vue中子组件调用父组件的方法 - 3.2 Vue父组件调用子组件的方法 - 3.3 涉及到组件...

  • Vue子组件到父组件通讯

    子组件到父组件通讯 在子组件调用 DOM 处定义子组件访问方法和父组件调用方法,声明方式为@子组件回掉方法="父组...

  • Uni-App 父类和组件互相调用方法和传参

    父组件调用子组件方法 子组件调用父组件方法

  • 小程序父、子组件之间方法调用

    一:父组件调用子组件的方法 父组件.wxml 父组件.js 子组件.js 一:子组件调用父组件的方法 父组件.wx...

  • 关于$refs的用法

    $refs父组件调用子组件的方法,可以传递数据。 示例 父组件 $refsFa.vue 子组件 emitCh.vu...

  • vue组件间参数与事件传递

    父组件向子组件传值 以及父组件调用子组件方法 子组件向父组件传值 以及子组件触发调用父组件方法

  • 组件之间的传值

    父组件调用子组件的方法: 子组件调用父组件或父页面的方法

  • 2019-03-13

    vue父子组件传值,(父组件向子组件传值用prop ,子组件向父组件传值:子组件调用父组件方法值以参数的方式传递)...

  • 2019-03-13

    vue父子组件传值,(父组件向子组件传值用prop ,子组件向父组件传值:子组件调用父组件方法值以参数的方式传递)...

  • vue 父组件调用子组件的方法

    父组件可以通过this.$refs调用子组件的方法 父级.vue 子级 child.vue

网友评论

      本文标题:Vue子组件调用父组件的方法(组件通讯)

      本文链接:https://www.haomeiwen.com/subject/pausectx.html