마지막 쯤 우린 보간이라는것을 알게되었다.
이는 우리가 배우고자하는 바인딩이라 불리우는것 중 하나이다.
간혹 누군가는
"바인딩이 뭐죠?" 라고 묻는자들이 있는데 바인딩이란 프로그램에서 어떤 기본 단위가 가질 수 있는
구성요소의 구체적인 값 혹은 성격을 정하는것을 바인딩이라고 한다
하나의 예시를 보자면
var number = 1
이러한 변수가 있으면 number는 변수의 이름 1은 변수의 값 이러한것을 할당하고 정하는것을 바인딩이라고한다.
다시 돌아와 설명하자면 보간법이란 Angular에서 문자열 바인딩을 뜻하며 이는
문자열에 무언가 담아 할당하고 정하는것을 뜻하는것이다.
1. 문자열 바인딩 사용법
문자열 바인딩은 전 글에서 더듬어보자면 {{ sample }} 이라는 기호를 사용했다.
또한 우린 title이라는 프로퍼티에 자신만의 멋진 문구를 할당하였다.
그렇다 그렇게 사용하면 된다.
그렇지만 이렇게 쓰면 너무 성의 없으니 실제로 어떻게 쓰는지 한번 보도록하자
참고로 필자는 body라는 프로퍼티에 개미는 뚠뚠 오늘도 뚠뚠 열심히 일을 하네 뚠뚠 이라는 데이터를 바인딩하였다.
이제 이 body라는 프로퍼티를 사용하려면
이렇게 쓰면된다
이처럼 문자열 바인딩은 위와같은 경우고 단순 문자열부터 많은것들을 담을수있다.
+ 아니 그래서 이걸 어따써요 니마...
그래서 예제를 하나 들고왔다
yes 버튼을 누르면
이런화면이
만약 no를 누른다면...
이런 화면이 나온다
실제로 코드 조차 엄청나게 간단한데
이런 형태이다 엄청나게 간단하지않는가?
보면 아니 뭔가 처음보는게 있는데 뭐가 쉬워요! 라고 꾸짖을 갈을 외친다면
좋은 지적이다.
저 위에 있는것은 다음편 이벤트 바인딩때 설명할 것이다.
2. 또다른 쓰임새
우린 이제 템플렛 표현식에 대해 알아볼 시간이다. 이 아름다운 기능은 단순히 문자나
데이터뿐만 아니라 연산식을 가능케 해준다 아래 사진을 보자
이러한 표현식에는 메서드도 호출할 수 있다.
원래는 문자열 바인딩의 처리 방식에 대해 배우고 어쩌구 저쩌구 있는데
굳이 다 알필요는 없고
간단히 이야기하자면 angular는 보간법 안에 있는 표현식을 모두 평기하고 문자열로 변환한다음
평가결과를 주변 문자열들과 결합한다음 할당하는 형태인것이다
또한 JS와 다른 몇가지 문법이 있는데..
- 표현식 외부에 영향을 미치거나 그러한 가능성이 있는 표현은 사용할 수 없다
값을 할당하는 표현 (=, +=, -=, ...)
new, typeof, instanceof 연산자
;나 ,를 사용해서 표현식을 여러 번 사용하는 표현
++, --와 같은 증감 연산자
ES2015 이상에서 지원하는 연산자 일부
그리고 JS와의 차이점은
|, &와 같은 비트 연산자는 사용할 수 없습니다.
|, ?., !와 같은 템플릿 표현식 연산자를 사용할 수 있습니다.
위와 같은 문법차이와 준수사항을 지키고 쓰도록 하자
3.컨텍스트
템플릿 참조 변수라는게 있다 이 컨텍스트는 템플릿내에 있는것을 참조하는것인데 간단히 예를 보여주자면
어느정도 짐작이 될것이라 생각된다 템플릿 참조 변수는 내가 작성하는 템플렛안에서만 존재하는 프로퍼티를 참조하는것
이다. 이를 통해 광역이나 다른참조가 아닌 템플렛 안에만 있는것을 참조할 수 있다.
4.기타
우린 이 멋진 기능을 쓰는데 있어서 주의해야될 여러가지 사항들이 있다
아래 그 주의사항들을 소개한다.
1. 되도록 짧게 써야한다.
템플렛 표현식은 프로퍼티의 이름,메서드의 실행 명령 정도가 제일 좋습니다.
앱의 로직이나 비즈니스 로직은 별도의 컴포넌트에 사용해야 유지보수,시인성,테스트 다방면으로 유리합니다.
2. 실행은 복잡하지 않아야한다.
Angular는 거대한 프레임워크입니다. 여러가지 기능과 라이브러리들과 복잡한 로직이 얽혀있는 툴로써
Angular는 상태 감지(혹은 변화 감지)주기 마다 템플릿 표현식을 실행합니다.
이는 promise,HTTP,타이머,키,스크롤,마우스 이동 등 비동기 작업들이 상태 감지 주기를 다시 실행시킵니다.
그러므로 실행이 복잡하다면 사용자의 디바이스에 큰 무리를 주게 되고 이는
웹의 발전 이유(웹 이탈율 감소)에 역행하게 되는겁니다. 더군다나 디바이스의 성능이 높지 않다면 이는
치명적인 단점으로 작용하니 가급적 복잡하지 않게 사용해야합니다.
3. 사이드 이펙트 최소화
이는 프로그래밍 방법론에 대한것이기도 합니다.
대규모의 프로젝트 혹은 작은 규모의 프로젝트라도 하나의 기능이 다른값까지 변경하는것 그리 추천하는 방법이 아닙니다.
프레임워크의 컴포넌트화를 기억하세요.
비단 angular만 가지는 주의사항이 아닙니다 기능을 파편화 시키고 간소화 시키세요.
이렇게 함으로써 화면은 초기 렌더링이 끝난 이후에도 안정된 상태를 보장하게 됩니다.
+ 왜 이렇게 딱딱한가요?
중요하기 때문입니다. 기능을 사용함에 있어 우수성보다 중요하다 생각해서 궁서체로 썼습니다.
반드시 준수해야합니다.
- 다음편은 이벤트 바인딩입니다.
(중요함)
'개발 > Angular' 카테고리의 다른 글
Angular - 화가나는 프레임워크 ep.03 <Hello world> (0) | 2022.08.31 |
---|---|
Angular - 화가나는 프레임워크 ep.01 (0) | 2022.07.29 |
Angular - 화가나는 프레임워크 ep.0 (0) | 2022.07.28 |