programing

Angular의 구조JS의 $watch 기능이 작동합니까?

css3 2023. 3. 1. 11:24

Angular의 구조JS의 $watch 기능이 작동합니까?

Angular에 대해서 많이 읽고 있어요.요즘 JS에서 우연히 $watch라는 신기한 기능을 발견했어요.사용법은 알고 있습니다만, 백그라운드에서 어떻게 실장하고 있는지 궁금합니다.시간 간격 함수인가요?아니면 앵글이 이 시계를 실행한 모든 진술이라고 부르는 건가요?

지금 당장 소스코드를 파고들고 싶지는 않습니다.여러분 중 한 분이 이미 답을 알고 계시기 때문에 이 주제에 대한 지식을 공유해 주셨으면 합니다.

감사해요.

모든 워치는 모든 다이제스트루프마다(때로는 여러 번) 평가됩니다.다이제스트 루프는 어떤 이벤트의 결과 또는 $apply()를 호출한 결과로 입력됩니다.시계는 타이머에 따라 정기적으로 호출되지 않습니다.

https://docs.angularjs.org/guide/scope#integration-with-the-browser-event-loop 를 참조해 주세요.

브라우저의 이벤트루프는 이벤트가 도착하기를 기다립니다.이벤트 콜백이 실행됩니다...콜백이 실행되면 브라우저는 JavaScript 컨텍스트를 떠나 DOM 변경에 따라 보기를 다시 렌더링합니다.Angular는 자체 이벤트 처리 루프를 제공하여 일반 JavaScript 흐름을 수정합니다.그러면 JavaScript가 클래식 실행 컨텍스트와 Angular 실행 컨텍스트로 분할됩니다.Angular는 일반적으로 응용 프로그램 상태를 수정하는 stimulateFn()을 실행합니다.각도는 $digest 루프에 들어갑니다.루프는 $evalAsync 큐와 $watch 목록을 처리하는 2개의 작은 루프로 구성됩니다.$digest 루프는 모델이 안정될 때까지 반복됩니다.즉, $evalAsync 큐는 비어 있고 $watch 리스트는 변경을 검출하지 않습니다.$watch 리스트는 마지막 반복 이후 변경될 수 있는 식 세트입니다.변경이 검출되면 $watch 함수를 호출하여 일반적으로 DOM을 새 값으로 업데이트합니다.

여기에 이미지 설명 입력

언급URL : https://stackoverflow.com/questions/18634666/how-does-angularjss-watch-function-work