computed

computed 계산 속성

computed 속성은 데이터를 실시간으로 계산하려 할 때 사용한다. 데이터를 실시간으로 계산한다는 것은 어떤 의미인지 왜 필요한지 예제를 통해 살펴본다.

예제는 2글자 이상 6글자 이하의 닉네임을 입력하면 true, 아니면 false를 출력하도록 구성되어 있다. 결론적으로 실행은 되지만 대부분의 에디터에서 구문 오류 표시가 발생한다. HTML에서 사용하기 부적합한 문자인 <, > 때문이다. 그 외의 문제점까지 정리하면 다음과 같다.

  • HTML 구문 오류로 인식

  • 가독성 저하

  • 중복 코드 발생

computed 속성을 사용하면 다음과 같이 코드가 변경된다.

실행 결과는 동일하지만 기존 예제의 문제점이 해결되었다.

사용법

computed 속성은 다음과 같이 작성한다.

computed 영역 내부에 값을 반환하는 함수를 만들어야 하며, 함수의 이름이 변수처럼 사용된다. 함수 내에서는 this 키워드를 이용하여 Vue instance 내부 요소들을 사용할 수 있다.

데모 - 아이디 형식 검사

데모 - 이메일 작성

이메일은 @를 기준으로 접두사(emailPrefix)와 접미사(emailSuffix)로 나눠지도록 구성하였다. 이 경우 실제 데이터는 emailPrefixemailSuffix이며, 전체 이메일은 computed 속성으로 만들어서 설정 및 확인할 수 있도록 구성한다. computed는 기본적으로 get만 가능하기 때문에 이 경우 computed를 get, set이 가능한 객체 형태로 정의할 수 있다.

주의사항

computed 사용 시 주의사항은 다음과 같다.

  • Vue instance 내부의 다른 항목에 접근할 경우 반드시 this 키워드를 사용해야한다.

  • 너무 많은 연산을 수행하지 않도록 구성한다.

  • 가급적 Vue data에 대한 계산을 수행하도록 구성한다.

Last updated