박재성
http://netil.github.io/slides/angularjs/
컴파일은 DOM트리를 순회하면서 지시를 찾아 매칭하고(Compile 과정), 이후 지시자와 스코프를 결합(Link 과정)해 모델의 변경을 뷰에 출력하는 일련의 처리 작업을 의미
구분 | 종류 | 크기(byte) | Total(byte) |
---|---|---|---|
DOM 제어(Jindo) | HTML | 1,164 | 4,951 (100%) |
JavaScript | 3,787 | ||
AngularJS | HTML | 2,059 | 3,161 (63.84%) |
JavaScript | 1,102 |
구분 | 학습 시간/예측 | 개발 서비스 종류 |
---|---|---|
사례1 | 6주 | 서비스 어드민 |
사례2 | 7일(2일 학습 + 5일 개발) | 2개의 탭을 갖는 목록 |
사례3 | JS 초급: 쉽게접근 JS 중/상급: 기존 방식의 익숙함으로 인한 시간필요 |
APM, 저작도구, 프로모션 페이지, etc. |
사례4 | 2주 | 컨텐츠와 목록 포함하는 엔드 페이지 |
100개 목록 데이터가 HTML에 포함되어 처리되는 경우
← click to refresh →
데이터 편차에 따른 처리 속도
One-Way Data Binding vs. Two-Way Data Binding
<body ng-app="myApp">
<div ng-controller="myControllerList">
<ul>
<li ng-repeat="fruit in fruits">
<span>{{fruit.name}}</span> / <span>{{fruit.qty}}</span>
</li>
</ul>
<button onclick="location.reload()">reload</button>
</div>
<script type="text/javascript" src="https://code.angularjs.org/1.3.8/angular.min.js"></script>
<script type="text/javascript">
angular.module("myApp",[])
.controller("myControllerList", function($scope) {
$scope.fruits = [
{ name: '메론', qty: 9 },
{ name: '망고', qty: 3 },
{ name: '바나나', qty: 1 }
];
});
</script>
</body>
*FOUC(Flash Of Unstyled Content) -
http://en.wikipedia.org/wiki/Flash_of_unstyled_content
양방향 데이터 바인딩을 위해 모델로 지정된 요소에
여래 개의 이벤트가 바인딩 된다.
Angular 2.0에선 1.x과 호환성 갖지 않음 (주요 문법의 변경과 폐지)
muchas gracias.