美文网首页
vue关于父组件调用子组件的方法

vue关于父组件调用子组件的方法

作者: world_7735 | 来源:发表于2020-03-31 14:17 被阅读0次

    我们都知道通过$ref可以获取到某个DOM,但是它也可以用来获取子组件的实例,调用子组件的方法

    例:
    子组件:

    <template>
      <div></div>
    </template>
    
    <script>
      export default {
        methods:{
          childMethod(flag) {
            console.log(flag)
          }
        },
        created(){
        }
      }
    </script>
    

    父组件: 在子组件中加上ref即可通过this.$refs.ref.method调用

    <template>
      <div @click="parentMethod">
        <children ref="child1"></children>
      </div>
    </template>
    
    <script>
      import children from 'components/children/children.vue'
      export default {
         data(){
          return {
            flag: true
          }
        },
        components: {      
          'children': children
        },
        methods:{
          parentMethod() {
            console.log(this.$refs.child1) //返回的是一个vue对象,所以可以直接调用其方法
            this.$refs.child1.childMethod(this.flag); 
          }
        }
      }
    </script>
    

    例子,兄弟组件间传递DOM数据,调用函数

    写一个兄弟组件之间传递数据,父组件调用方法的案例:
    第一个子组件cartcont,发射数据

    this.$emit('cartadd', event.target);
    

    父组件接收数据,并将数据,通过调用另一个子组件shopcart 的方法传递给另一个子组件shopcart

    <v-cartcont :food="food" @cartadd='_drop'></v-cartcont>
    <v-shopcart ref='shopcart'></v-shopcart>
    
    _drop(target){
        console.log('父组件接收数据')
        this.$refs.shopcart.drop(target);
    }
    

    shopcart子组件的方法

    drop(el){
        console.log('调用另一个子组件的方法')
        console.log(el)
    }
    

    相关文章

      网友评论

          本文标题:vue关于父组件调用子组件的方法

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