ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Vue.js 문법 - Refs
    Vue/Vue.js 문법 2021. 7. 18. 20:55

     

    Refs

     

    App.vue

    <template>
      <h1 ref="hello">
        Hello World!
      </h1>
    </template>
    <script>
    export default {
      mounted() {    
        // <h1> Hello World! </h1>
        console.log(this.$refs.hello)
      }
    }
    </script>

     

    코드 이해하기

    - ref 속성은 reference 단어의 약어

    - ref 속성을 이용해서 레퍼런스 ID를 자식 컴포넌트나 HTML 요소에 부여함으로써 직접 접근할 수 있다

     

    컴포넌트 Refs 예제

     

    App.vue

    <template>
      <Hello ref="hello" />
    </template>
    <script>
    import Hello from '~/components/Hello'
    
    export default {
      components: {
        Hello
      },
      mounted() {    
        // <h1>Hello~</h1>
        console.log(this.$refs.hello.$el)
      }
    }
    </script>

     

    Hello.vue

    <template>
      <h1>Hello~</h1>
      <!-- <h1>Good~</h1> 요소가 추가되면 정확하게 알 수 없다 -->
    </template>

     

    코드 이해하기

    - 컴포넌트를 ref 속성으로 참조할 경우에는 참조된 이름 뒤쪽에 $el 속성을 명시 (this.$refs.hello.$el)

    - 해당 컴포넌트가 참조하는 요소가 출력됨

    - 만약 참조하려는 컴포넌트 최상위 요소가 여러 개인 경우에는 어떠한 요소를 참조할지 정확히 알 수 없다

    - 그래서 특정한 요소가 아닌 객체 데이터가 출력됨

     

    최상위 요소가 2개인 컴포넌트 Refs 예제

     

    App.vue

    /* template 생략 */
    
    <script>
    import Hello from '~/components/Hello'
    
    export default {
      components: {
        Hello
      },
      mounted() {    
        // <h1> Good? </h1>
        console.log(this.$refs.hello.$refs.good)
      }
    }
    </script>

     

    Hello.vue

    <template>
      <h1>Hello~</h1>
      <h1 ref="good">
        Good?
      </h1>
    </template>

     

    코드 이해하기

    - $el 속성 대신에, $refs 속성 다음에 컴포넌트에 참조된 ref 이름을 명시 (this.$refs.hello.$refs.good)

    'Vue > Vue.js 문법' 카테고리의 다른 글

    Vue.js 문법 - Provide / Inject  (0) 2021.07.18
    Vue.js 문법 - 컴포넌트 Slot  (0) 2021.07.18
    Vue.js 문법 - 컴포넌트 Emit  (0) 2021.07.16
    Vue.js 문법 - 컴포넌트 속성 상속  (0) 2021.07.16
    Vue.js 문법 - 컴포넌트 기초  (0) 2021.07.16

    댓글

Designed by Tistory.