vue父组件调用子组件的方法-$ref

  • 说明:vm.$refs 一个对象,持有已注册过 ref 的所有子组件(或HTML元素)
  • 使用:在 HTML元素 中,添加ref属性,然后在JS中通过vm.$refs.属性来获取
  • 注意:如果获取的是一个子组件,那么通过ref就能获取到子组件中的data和methods

    根据以上三条,我们就可以直接给子组件添加ref属性然后,通过vm.$refs来调用子组件的methods中的方法或者获得data

直接看代码

子组件:
<template>
  <div>

  div>
template>

<script>
  export default {
    data(){
      return {
        num:'123'
      }
    },
    computed: {
    },
    methods:{
      childMethods() {
        alert("I am child's methods")
      }
    },
    created(){
    }
  }
script>
父组件: 在子组件中加上ref即可通过this.$refs.ref.method调用
<template>
  <div @click="parentMethod">
    <children ref="c1">children>
  div>
template>

<script>
  import children from 'components/children/children.vue'
  export default {
    data(){
      return {
      }
    },
    computed: {
    },
    components: {      
      'children': children
    },
    methods:{
      parentMethod() {
        console.log(this.$refs.c1) //返回的是一个vue对象,可以看到所有添加ref属性的元素
        this.$refs.c1.childMethods(); 
      }
    },
    created(){
    }
  }
script>

你可能感兴趣的:(vue)