2

저는 각각 고유 한 구성 요소, 서비스, 지시문 등을 캡슐화하는 수많은 ngModule을 작업했습니다. 내 응용 프로그램을 스트링 할 준비가되었으므로 각 모듈을 기본 라우터 콘센트에 느리게 연결할 수 있으므로 특히 로우 엔드 장치 (모바일이 아닌 태블릿)의 전반적인 메모리 소비가 걱정됩니다. 그래서 내 질문은 라우터 게으른 새로운 모듈을로드 할 때, 이전 게으른로드 된 모듈을 언로 드하는 것입니다? JIT, AOT, 사전로드 및 지연로드에 대한 정보 만 찾을 수 있지만로드 후 컨텍스트에서 Angular 2+ 및 메모리 관리에 대한 리소스 또는 토론이 부족합니다.Angular 2+ Router가 이전의 지연로드 모듈을 언로드합니까?

내 질문을 고려해 주셔서 감사합니다.

답변

0

지연로드 방법을 사용하여 처음로드되지는 않지만 다른 모듈로 라우팅 한 후에 언로드되지 않음을 확인할 수 있습니다. 모듈을 언로드하는 것이 ngx에서 지원하지 않을 것입니다. 여기에 정확한 질문에 브래드 그린의 질문이 나온 짹짹이 있습니다.

https://twitter.com/bunsofaluminum/status/642397294474756096.

언로드 구성 요소에 대한 간단한 설명을 추가하고 싶습니다. 구성 요소와 관련된 데이터를 언로드 할 수 있습니다. 코어의 일부인 DynamicComponentLoader과 OnInit처럼 구현하는 OnDestroy의 두 가지 방법이 있습니다. 특히 OnDestroy에 가입을 취소 할 수있는 많은 서비스를 사용하는 경우 전체 메모리로드에 도움이되는 두 가지 기능을 활용할 수 있어야합니다.

0

"아직 구현되지 않음"은 still the correct answer as of 2017-04입니다.

그러나, 개발자 샌더 엘리아스는 해결 방법을 제안한다 :

메모리를 플러시 할 수있는 유일한 방법은 페이지 리로드입니다. 가장 쉬운 방법은 라우터 링크 대신 href를 사용하여 애플리케이션의 특정 부분을 탐색하는 것입니다.