[Vue.js] reactivity와 IIFE(즉시 실행함수)
2021. 9. 18. 16:31ㆍ개발공부/Vue.js 시작하기
728x90
reactivity와 IIFE(Immediately Invoked Function Expression:즉시 실행함수)
반응을 감지해서 value를 넣어주는 기능을 반응성(reactivity)라고 합니다. Object.defineProperty(대상 객체, 객체의 속성, {정의할 내용}
의 형식으로 작성해 div.innerHTML
에 value를 set
으로 재할당해 값이 변경될 때마다 <div>
에 출력해줄 수 있습니다. 반응성은 Vue에 반영이 되어 있기 때문에 직접 정의하지 않아도 Vue 객체를 활용해 사용할 수 있습니다.
var viewModel = {};
//객체의 동작을 재정의하는 메소드
Object.defineProperty(viewModel, 'str', {
// 속성의 접근했을 떄의 동작을 정의
get: function() {
console.log('접근');
},
set: function(newValue) {
console.log('할당', newValue);
div.innerHTML = newValue;
}
});
defineProperty
메서드를 실행시키기 위해 즉시실행함수를 사용할 수 있습니다. IIFE
라고 불리는 즉시실행함수는 스코프 내에서 사용할 수 있기 때문에 접근을 제한하는 캡슐화의 장점이 있습니다.
//즉시 실행함수: 다른 스코프에 노출되지 않고 실행이 가능함
(function() {
function init() {
//객체의 동작을 재정의하는 메소드
Object.defineProperty(viewModel, 'str', {
// 속성의 접근했을 떄의 동작을 정의
get: function() {
console.log('접근');
},
set: function(newValue) {
console.log('할당', newValue);
render(newValue);
}
});
}
function render(value) {
div.innerHTML = value;
}
init();
})();
참고자료: 인프런 - 캡틴판교 Vue.js 시작하기
'개발공부 > Vue.js 시작하기' 카테고리의 다른 글
[Vue.js] Router (0) | 2021.09.20 |
---|---|
[Vue.js] 같은 레벨 컴포넌트의 통신 (0) | 2021.09.20 |
[Vue.js] 컴포넌트 통신 (0) | 2021.09.20 |
[Vue.js] Component (0) | 2021.09.20 |
[Vue.js] Vue 인스턴스와 생성자 함수 (0) | 2021.09.18 |