복잡하고 거대한 컴포넌트를 해결하기 위한 목적
로직을 재사용하고 관심사를 분리하기에 보다 용이하며 읽기 쉽고 논리적인 코드를 작성하기 위한 목적으로 도입되었습니다.
우선 setup()를 사용해서 컴포지션 api를 구현한다.
반응형 상태를 사용하려면 setup에서 반응형 상태를 선언하고 반환해야함
vue2의 Options API
의 경우, 역할과 책임 소재에 따라 정해진 위치에 코드가 분리되어 있는 형태였습니다(data
, methods
, computed
, watch
... ). 이는 일견 직관적이고 코드가 잘 조직화되어 있다고 생각될 수 있지만, 프로젝트의 규모가 커질 수록 중대한 결점이 드러나게 됩니다.
Composition API
는 각각의 기능을 함수로 묶어서 독립적으로 정의, 처리할 수 있기 때문에, 어떤 기능을 수정하고자 하면 그 함수만 보면 됩니다.
논리를 캡슐화할 수 있는 Composables 공통 함수를 사용하여 깔끔하게 코드를 재사용할 수 있습니다. 기존에도 Mixins을 활용하는 방법이 있었지만, 아래와 같은 문제가 있어 현재는 더 이상 사용이 권장되지 않고 유지만 되고 있습니다
→ mixins을 사용하는걸 조심해야 하는 이유:
TypeScript
와의 밀착도가 높아져 성능적으로 이득을 볼 수 있습니다.