Angular의 장점은 무엇입니까?JS Strict DI mode?
최근에 Angular를 접하게 되었습니다.JS Strict DI 모드.사용 목적과 이점은 무엇입니까?특히 모바일 기기에서 사용함으로써 성능이 크게 향상될 수 있을까요?
저는 코드에 적용하려고 노력하고 코드를 작성할 때 주석을 하지 않았습니다.하지만, 나는 내 코드를 최소화하고 빌드하는 동안 ng-notation해야 합니다.그런데 코드에 Strict DI 모드를 추가한 후에도 "명시적 주석 필요"라는 오류가 계속 표시되는 이유는 무엇입니까?
Strict DI Mode는 기본적으로 실행 시, 최소화를 준수하지 않는 코드 조각이 발견될 때 오류를 발생시키지만, 코드가 옳을 수 있고 논리적-동사적 오류가 없을 수도 있습니다.
문서 인용:
이 속성이 앱 요소에 있으면 인젝터가 " strict-di" 모드로 생성됩니다.이는 응용 프로그램이 종속성 주입 안내서에 설명된 대로 명시적 함수 주석을 사용하지 않는 함수를 호출하지 못하므로 최소화에 적합하지 않음을 의미하며, 유용한 디버깅 정보는 이러한 버그의 루트를 추적하는 데 도움이 됩니다.
예를 들어 이 코드는 다음과 같은 이유로 오류를 유발합니다.($scope, $http, $filter)
를 사용하여 명시적으로 주입되지 않습니다.$inject
또는 에 주는 것..controller(A,B)
배열을 두 번째 필드로 메서드합니다.
angular.module("myApp", [])
// BadController cannot be invoked, because
// the dependencies to be injected are not
// explicitly listed.
.controller("BadController", function($scope, $http, $filter) {
// ...
});
오른쪽 토막글:
angular.module("myApp", [])
.controller("GoodController1", GoodController1);
GoodController1.$inject = ["$scope", "$http", "$filter"];
function GoodController1($scope, $http, $filter){}
또는:
angular.module("myApp", [])
.controller("GoodController1",
["$scope", "$http", "$filter", function ($scope, $http, $filter){
//...
}]);
당신의 질문에 답하기 위해서는 그것을 사용함으로써 큰 성능 향상은 없습니다.이는 단지 최소화 오류 안전성만을 부여합니다.이것은 예를 들어 당신이 사용할 때 minization이 당신의 코드를 깨는 변수 이름을 바꾸기 때문입니다.$scope
명시적인 주석 없이
다음과 같이 strict-di를 추가할 수도 있습니다.
angular.bootstrap(document, ['app'], {
strictDi: true
});
각운석을 사용할 때 6가지 유형의 응용 프로그램.
각도 엄격한 DI는 코드 최소화 기능을 수행합니다.
코드가 최소화되면 파라미터의 이름이 짧아지고, 이로 인해 각도의 DI가 깨집니다.이 문제를 해결하기 위해 의존성을 추가하는 두 가지(아마도 지금은 더 많은) 대안적인 방법이 추가되었습니다.
ng-notate에서 사용하는 가장 일반적인 방법은 두 번째 매개 변수로 함수 대신 배열을 배치하는 것일 수 있습니다.종속성은 배열의 마지막 요소 앞에 있는 문자열이고, 문자열은 종속성 이름입니다.
controller.$inject(['$scope']);
angular.module('app', ['dependency']).controller('myCtrl', ['myFirstDep',
function(willBeInjectedHere){}])
당신의 ng-notate가 각도를 맞추기 전에 실행되지 않을 수도 있습니다. 그것은 체크입니다.주석과 함께 추글라이피를 실행하지 않는지 확인하고, 그 전에 명시적으로 실행합니다.코드가 오류를 던지는 경우 주석이 생성되지 않은 곳이 있을 수 있습니다.
좋은 방법은 사용하는 것입니다.strict-di
를 호출할 는 앱 명시적인 함수 주석을 사용하지 않는 함수를 호출할 때는 앱 실행이 실패해야 합니다.이는 사용된 메소드를 선언해야 함을 의미합니다.으로.ng-strict-di
앱이 종속성 주입 가이드라인으로 확인하고 있지 않으면 실행에 실패합니다.
를 할 수 .ng-strict-di
:
<html ng-app="myApp" ng-strict-di>
개발자 가이드 참조: https://docs.angularjs.org/guide/di
언급URL : https://stackoverflow.com/questions/33494022/what-is-the-benefit-of-angularjs-strict-di-mode
'programing' 카테고리의 다른 글
엔티티 프레임워크에서 서명되지 않은 int/long 유형을 사용하는 방법은 무엇입니까? (0) | 2023.09.21 |
---|---|
MySQL의 Aggregate 함수 - 목록(Oracle의 LISTAGG와 같이) (0) | 2023.09.21 |
MariaDB Master-Master 설정에 대한 일반적인 생각(업그레이드 절차도 포함) (0) | 2023.09.21 |
jquery(또는 pure js) 시뮬레이션 엔터키를 테스트용으로 누릅니다. (0) | 2023.09.21 |
WordPress W3 Total Cache Plugin CSS & JS를 결합하지 않음 (0) | 2023.09.21 |