본문 바로가기

앙귤러JS

$Watche와 ng-change는 뭐가 다르지 ?


ng-change와  $watch는 뭐가 다를까 ?




ng-chage는 function를 오직 사용자의 조작에 의해서 이벤트가 발생하고 변경되고 실행되어 진다. 

watch는 우리가 아는대로 다른 꼭 사용자의 조작에 의해서만 실행되는 것이 아니고 개발자에 의도에 맞게 정의된 케이스에 의해 실행된다.

watch는 정의되고 변경되는 것은 반드시 사용자에 의한 이벤트가 아니다.



개발자의해서 쓰여지는 코드는 왜 작성했는지 왜 이런 코드를 사용했는지 이유와 배경이 분명하다. 

ng-change로 사용자에게서부터 이벤트를 받고자 한다면 내가 모르는 다른 이유에 의해 변경되는 것을 기대하지 않을 것이다.

watch로 개발된 코드를 다른 사람이 어떠한 미래에 보게 된다면 watches가 어떤 그리고 어디까지 영향을 미치는지 고민해야 할 것이다. 



ng-change는 어떤 이유로 인해서 어떤 조작으로 인해서 어떻게 Input에 적용되고 변경되는지를 볼 수 있다는 것이다. 

즉, 어떤 function이 ng-change에 대해 기능을 준비하고 있는지 후처리 과정을 볼 수 있다는 뜻이다. 


적은 코드는 디버그 할게 적다는 것, 위에 적은 걸 봐도 우리는 input의 변경을 리스닝 하기 위해서 코드를 추가할 필요가 없다.




ng-change를 사용하는 것은 아주 약간의 성능에 이점이 있다. 

AngularJS는 ng-change에 대해서 매번 일어나는 순환에 대해 검증할 필요가 없다. 

watch는 하나 정도는 고민 할 필요 없지만 규모가 큰 어플리케이션이라면 '많은' 사용을 고려해 봐야 할지도 모른다.


그래도 $watch는 사용해야 할 때가 있다. 그러나 가끔이다. 

'앙귤러JS' 카테고리의 다른 글

[앙귤러] 앙귤러(angular)는 ?  (0) 2013.11.28
[앙귤러] BootStrap  (0) 2013.11.28