zoukankan      html  css  js  c++  java
  • vue子组件调用父组件的方法

    第一种方法是直接在子组件中通过this.$parent.event来调用父组件的方法

    父组件

    <template>

      <div>

        <child></child>

      </div>

    </template>

    <script>

      import child from '~/components/dam/child';

      export default {

        components: {

          child

        },

        methods: {

          fatherMethod() {

            console.log('测试');

          }

        }

      };

    </script>

    子组件

    <template>

      <div>

        <button @click="childMethod()">点击</button>

      </div>

    </template>

    <script>

      export default {

        methods: {

          childMethod() {

            this.$parent.fatherMethod();

          }

        }

      };

    </script>

    第二种方法是在子组件里用$emit向父组件触发一个事件,父组件监听这个事件就行了。

    父组件

    <template>

      <div>

        <child @fatherMethod="fatherMethod"></child>

      </div>

    </template>

    <script>

      import child from '~/components/dam/child';

      export default {

        components: {

          child

        },

        methods: {

          fatherMethod() {

            console.log('测试');

          }

        }

      };

    </script>

    子组件

    <template>

      <div>

        <button @click="childMethod()">点击</button>

      </div>

    </template>

    <script>

      export default {

        methods: {

          childMethod() {

            this.$emit('fatherMethod');

          }

        }

      };

    </script>

    第三种是父组件把方法传入子组件中,在子组件里直接调用这个方法

    父组件

    <template>

      <div>

        <child :fatherMethod="fatherMethod"></child>

      </div>

    </template>

    <script>

      import child from '~/components/dam/child';

      export default {

        components: {

          child

        },

        methods: {

          fatherMethod() {

            console.log('测试');

          }

        }

      };

    </script>

    子组件

    <template>

      <div>

        <button @click="childMethod()">点击</button>

      </div>

    </template>

    <script>

      export default {

        props: {

          fatherMethod: {

            type: Function,

            default: null

          }

        },

        methods: {

          childMethod() {

            if (this.fatherMethod) {

              this.fatherMethod();

            }

          }

        }

      };

    </script>

    三种都可以实现子组件调用父组件的方法,但是效率有所不同,根据实际需求选择合适的方法

  • 相关阅读:
    MVVM架构~knockoutjs系列之验证信息自定义输出~再续
    数据挖掘:实用案例分析
    实际中碰到的一个异构系统之间数据交换的处理方式设计
    连载:现代无线电接收机的系统噪声系数分析一 级联接收机的计
    hadoop的一些名词解释
    【ArcGIS 10.2新特性】ArcGIS 10.2 for Desktop 新特性(一)
    Visual Studio Tips: How to change project namespace
    PHP 类属性 类静态变量的访问
    ios日历视图实现日期输入
    简说一下coffeescript的constructor是如何导致Backbone.View的事件无法正常工作的.
  • 原文地址:https://www.cnblogs.com/ranyonsue/p/11753507.html
Copyright © 2011-2022 走看看