> 웹 프론트엔드 > View.js > Vue 상위 구성 요소에서 하위 구성 요소의 메서드를 호출하는 방법

Vue 상위 구성 요소에서 하위 구성 요소의 메서드를 호출하는 방법

青灯夜游
풀어 주다: 2021-10-26 14:28:20
원래의
121728명이 탐색했습니다.

호출 방법: 1. 상위 구성 요소에서 ref를 통해 하위 구성 요소의 메서드를 직접 호출합니다. 2. 상위 구성 요소에서 구성 요소의 "$emit" 및 "$on" 메서드를 통해 호출합니다.

Vue 상위 구성 요소에서 하위 구성 요소의 메서드를 호출하는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, vue 버전 2.9.6, DELL G3 컴퓨터.

Vue 프로젝트의 상위 구성 요소에서 하위 구성 요소 메서드를 직접 호출하는 방법:

옵션 1: ref를 통해 하위 구성 요소 메서드를 직접 호출

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

//父组件中

 

<template>

    <div>

        <Button @click="handleClick">点击调用子组件方法</Button>

        <Child ref="child"/>

    </div>

</template>   

 

<script>

import Child from &#39;./child&#39;;

 

export default {

    methods: {

        handleClick() {

              this.$refs.child.sing();

        },

    },

}

</script>

 

 

//子组件中

 

<template>

  <div>我是子组件</div>

</template>

<script>

export default {

  methods: {

    sing() {

      console.log(&#39;我是子组件的方法&#39;);

    },

  },

};

</script>

로그인 후 복사

옵션 2: 구성 요소의 $를 통해 방출, $on 메소드;

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

//父组件中

 

<template>

    <div>

        <Button @click="handleClick">点击调用子组件方法</Button>

        <Child ref="child"/>

    </div>

</template>   

 

<script>

import Child from &#39;./child&#39;;

 

export default {

    methods: {

        handleClick() {

               this.$refs.child.$emit("childmethod")    //子组件$on中的名字

        },

    },

}

</script>

 

//子组件中

 

<template>

    <div>我是子组件</div>

</template>

<script>

export default {

    mounted() {

        this.$nextTick(function() {

            this.$on(&#39;childmethods&#39;, function() {

                console.log(&#39;我是子组件方法&#39;);

            });

        });

     },

};

</script>

로그인 후 복사

관련 추천: "vue.js tutorial"

위 내용은 Vue 상위 구성 요소에서 하위 구성 요소의 메서드를 호출하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿