provide, inject는 컴포넌트가 통신하도록 하는데 아주 유용한, Vue에 내장된 도구이다.
부모와 자식 컴포넌트 사이, 또는 부모와 자식 컴포넌트의 자식 컴포넌트 사이에서만 통신을 할 수 있다.
이웃 간에 통신하는데 사용할 수는 없다.
중요한 점은 또 하나 있다.
props와 커스텀 이벤트를 대체하기 위해 provide와 inject를 항상 사용해서는 안된다.
실제 props와 커스텀 이벤트가 기본 통신 메커니즘이어야 한다.
불필요하게 통과해야만 하는 컴포넌트가 있을 때, provide와 inject 사용을 고려해볼 수 있다.
KnowledgeBase.vue는 props를 전달하고, 발생한 이벤트를 전달하는 컴포넌트일 뿐이었다.
이런 경우는 provide, inject를 사용하면 불필요한 코드를 제거하고, 코드 베이스를 좀 더 간결하게 만들 수 있다.
provide-inject가 코드를 더 이해하기 어렵게 만든다고 주장할 수도 있다.
코드를 보면 App.vue에 provide한 값이 두 개가 있는데, 값이 어디에서 사용되었는지 이해하려면 모든 컴포넌트를 살펴봐야하므로.
더 큰 앱에서는 번거로워질 수 있으니 현명하게 사용하면 된다.
통과해야하는 컴포넌트가 많다면 당연히 provide-inject를 사용해야 하지만, 통과해야하는 컴포넌트가 하나라면 중복되는 코드가 생기더라도 props와 커스텀이벤트를 사용하는 것이 좋을 수 있다.
결국 개인 취향에 달려있다.
** 출처: 모든 내용은 Udemy Vue-완벽가이드 강의를 기반으로 작성하였습니다.
'Vue.js' 카테고리의 다른 글
[Udemy Vue 완벽가이드 Section9] 109. 섹션 소개 (0) | 2023.08.29 |
---|---|
[Udemy Vue 완벽가이드 Section8] 107. 섹션 요약 (0) | 2023.08.29 |
[Udemy Vue 완벽가이드 Section8] 105. 함수/메서드에서의 provide + inject (0) | 2023.08.28 |
[Udemy Vue 완벽가이드 Section8] 104. Provide + Inject로 해결하기 (0) | 2023.08.27 |
[Udemy Vue 완벽가이드 Section8] 103. 잠재적인 문제점 (0) | 2023.08.27 |