>  기사  >  웹 프론트엔드  >  Vue 컴포넌트의 부모와 자식 간의 통신에 대한 자세한 설명

Vue 컴포넌트의 부모와 자식 간의 통신에 대한 자세한 설명

小云云
小云云원래의
2017-12-23 11:47:041598검색

이 글은 Vue 구성요소의 아버지와 아들 사이의 의사소통에 관한 관련 정보를 주로 소개합니다. 관심 있는 친구들이 참고할 수 있기를 바랍니다.

3.컴포넌트 간 통신($parent $refs)

부모 컴포넌트가 자식 컴포넌트의 데이터를 얻고자 하는 경우:

①자식 컴포넌트 호출 시 ref 속성을 지정하세요

< ;child-comComponent ref="mySon">5930faad49cc992ac61a996ed75e174a

②지정된 참조 이름에 따라 하위 컴포넌트의 인스턴스 객체를 찾습니다

this.$refs.mySon

If 하위 컴포넌트가 상위 컴포넌트를 가져오려고 합니다. 데이터:


this.$parent
직접 읽기 this.$refs

코드를 통해 하위 컴포넌트의 데이터 가져오기:


<!doctype html>
<html>
 <head>
 <meta charset="UTF-8">
 <title>组件间通信-01</title>
  <script src="js/vue.js"></script>
 </head>
 <body>
 <p id="container">
    <p>{{msg}}</p>
    <dahua></dahua>
  </p>
  <script>
  //vue提供的ref
    Vue.component("dahua",{
      data:function(){
        return{
          mySonName:""
        }
      },
      methods:{
      //通过$refs拿到指定的所引用的对应的组件的实例对象
        getSonName:function(){
          this.mySonName = this.$refs.mySon.name;
        }
      },
      template:`
        <p>
          <h1>这是父组件</h1>
          <button @click = "getSonName">获取子组件数据</button>
          <span>{{mySonName}}</span>
          <hr>
          <xiaohua ref="mySon"></xiaohua>
        </p>
      `
    })
//  创建子组件
    Vue.component("xiaohua",{
      data:function(){
        return{
          name:"小花"
        }
      },
      template:`
          <h1>这是子组件</h1>
      `
    })
    new Vue({
      el:"#container",
      data:{
        msg:"Hello VueJs"
      }
    })
  </script>
 </body>
</html>

하위 컴포넌트 $parent

를 통해 상위 구성 요소의 데이터를 가져옵니다.

<!doctype html>
<html>
 <head>
 <meta charset="UTF-8">
 <title>组件间通信-02</title>
  <script src="js/vue.js"></script>
 </head>
 <body>
 <p id="container">
    <p>{{msg}}</p>
    <dahua></dahua>
  </p>
  <script>
    //创建子组件
    Vue.component("dahua",{
      data:function(){
        return{
          myName:"大花"
        }
      },
      template:`
        <p>
          <h1>这是父组件</h1>
          <hr>
          <xiaohua></xiaohua>
        </p>
      `
    })
    //创建子组件
    Vue.component("xiaohua",{
      data:function(){
        return{
          msg:""
        }
      },
      template:`
        <p>
            <h1>这是子组件</h1>
            <p>{{msg}}</p>
        </p>
      `,
      created:function(){
        //在子组件创建完成时获取父组件的数据
        //保存在msg中在p标签中显示
          this.msg = this.$parent.myName;
      }
    })
    new Vue({
      el:"#container",
      data:{
        msg:"Hello VueJs"
      }
    })
  </script>
 </body>
</html>

관련 권장 사항:

PHP는 상위-하위 수준 선택 문제를 처리합니다.

react.js 상위-하위 구성 요소 데이터 바인딩 실시간 통신 예시 표시

부모-자식 목록을 위한 배열 정렬 방법 솔루션 아이디어

위 내용은 Vue 컴포넌트의 부모와 자식 간의 통신에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.