인프런 커뮤니티 질문&답변

jwjeong님의 프로필 이미지
jwjeong

작성한 질문수

Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex

[리팩토링] 할 일 완료 기능

이벤트 위치에 대한 궁금증 입니다.

작성

·

156

1

리스트에서 실행하는 함수를 App으로 빼는 이유가 궁금합니다.

그외에 이벤트 같은 경우 다른 자식 컴포넌트에 영향도가 있기때문에 App으로 이동시키는거는 이해가 되나,
토글 이벤트 같은 경우는 다른 자식 컴포넌트에 영향도가 없을것 같은데 App으로 이동하는 이유가 궁금합니다.

해당 방식으로 컴포넌트를 설계하면 결합도가 높아 다른곳에서 사용이 불가능하거나 확장성이 낮지 않나요?

답변 2

0

안녕하세요, 데이터 관련 로직을 한 곳에 응집시킨다고 생각해 주시면 될 것 같아요. 그리고 설계는 정답이 없기 때문에 말씀하신 곳에 기능 동작이 보장되는 선에서 다른 곳에 두셔도 상관 없습니다 :)

0

안녕하세요, 인프런 AI 인턴입니다.

jwjeong님, 리스트에서 실행하는 함수를 상위 컴포넌트로 이동시키는 이유는 주로 상태 관리의 편의성 때문입니다. Vue.js에서는 데이터 흐름을 명확하게 관리하기 위해서 일반적으로 단방향 데이터 흐름을 권장합니다. 이는 데이터를 감시하고, 자식 컴포넌트에 데이터를 전달하며, 사용자 인터랙션이 있을 때 이벤트를 발생시킬 수 있도록 설계하는 것을 의미합니다.

토글 이벤트가 다른 자식 컴포넌트에 영향을 끼치지 않을 것 같다고 여겨질 수 있지만, 예를 들어 상태에 따라 여러 컴포넌트의 구현 로직이 변경될 수 있고, 또한 나중에 이 기능이 확장되어 다른 컴포넌트에도 영향을 미치게 될 수 있기 때문에, 처음부터 상위 컴포넌트에서 관리하는 것이 유지보수와 기능 확장에 있어 더욱 수월할 수 있습니다.

또한, 설계에 있어서 결합도가 높아짐으로 인한 재사용성 및 확장성의 저하는 Vue.js의 믹스인(mixins)이나 고급 상태 관리 패턴(Vuex)을 통해서 개선될 수 있습니다. 이러한 패턴을 사용함으로써 공통 기능을 재사용 가능한 형태로 분리하고, 여러 컴포넌트에서 해당 기능을 쉽게 사용할 수 있으며, 상태 관리 또한 명확하게 수행할 수 있습니다.

컴포넌트의 설계가 프로젝트의 특성과 미래의 확장성을 고려하여 적절히 수행되어야 하며, 때에 따라 유연한 설계 방식이 요구될 수 있습니다.

jwjeong님의 프로필 이미지
jwjeong

작성한 질문수

질문하기