HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
💌
JJong’s Archive
/
🏞️
Vue
/
teleport, provide/inject

teleport, provide/inject

Select
Nov 28, 2023

teleport

  • <teleport to=선택자>자식들</teleport> => 자식들을 선택자 내부로 이동!!
 

provide/inject

  • 부모가 후손들에게 데이터를 줄 때 provide를 사용, 해당 데이터를 받고 싶은 후손(자식 포함)들은 inject로 받는다!
  • provide 메소드 옵션을 컴포넌트에 명시, 내려주고 싶은 데이터를 return한다
//App.vue <template> <h1>{{msg}}</h1> <Hello /> // 내려줄 때 아무런 표시 x </template> <script> ... export default { provide() { return { msg: this.msg } }, data() { return { msg: '', .. </script> //Hello.vue <template> <h2>{{msg}}</h2> //바로 쓰면 됨 ㅇㅇ </template> <script> ... export default { inject: ['msg'] //provide한 데이터를 받는다 } .. </script>
  • 반응성을 기본적으로 가지지 않는다
    • computed 이용하면, provide하는 데이터를 바꿀 때마다 자inject한 자식의 데이터에도 영향을 미침
    • 자식은 객체 형태로 데이터를 받아서, value 속성으로 꺼내줘야 큰 따옴표가 제거된다
//App.vue <script> ... import {computed} from 'vue' export default { provide() { return { msg: computed(()=>this.msg) } }, </script> //Hello.vue <template> <h2>{{msg.value}}</h2> //바로 쓰면 됨 ㅇㅇ </template>
  • 비교
    • 부모가 자식에게 데이터 전달 → props
    • 부모가 후손들에게 → provide
 
 

 
  • props의 값이 없으면 알아서 true로 값이 들어감