티스토리 뷰
vue3, vue2의 Reactivity의 차이점에 대해 정리해 보고자 한다.
Vue 3 Reactivity - Proxy
<div id="app">
<!-- 여기에 뭐가 렌더링 된다. -->
</div>
<script>
var data = {
message: 10,
num: 20,
}
function render(sth) {
var div = document.querySelector('#app');
div.innerHTML = sth;
}
var app = new Proxy(data, {
get() {
console.log('값 접근')
},
set(target, prop, newValue) { // 파라미터는 API문서에서 확인 가능
console.log('값 갱신')
target[prop] = newValue;
render(newValue);
}
})
</script>
vue3 에서 반응형을 어떻게 구현하고 있는가에 대한 코드이다.
Proxy라는 객체를 생성하여,
첫번째 파라미터에 대상을, 두번째 파라미터에 객체를 지정하여,
get(),과 set()을 구현 하고 있다.
vue2와는 달리 객체를 통체로 모방을 하기 때문에 속성을 개별로 지정하지 않아도 된다.
vue2 Reactivity - Object.defineProperty()
Object.defineProperty()는 각 속성에 대해 개별로 지정해야 하는 단점이 있었고
미리 정의 되지 않는 속성에 대해선 reactiviy가 적용되지 않았다.
const object1 = {
a: 10,
b: 20
};
Object.defineProperty(object1, 'a', {
value: 11,
writable: false,
});
Object.defineProperty(object1, 'b', {
value: 22,
writable: false,
});
'개발지식 > vue.js' 카테고리의 다른 글
vue.js의 computed 속성 (1) | 2023.11.20 |
---|---|
Vue v-bind v-on v-model의 차이 (0) | 2023.10.16 |
Vue 컴포넌트간 데이터 전달 emit props (0) | 2023.10.11 |
Vue2와 Vue3의 인스턴스 생성 (0) | 2023.10.09 |
Vue2와 Vue3의 차이점 (0) | 2023.10.06 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- git branch 날짜순
- DATE DATETIME TIMESTAMP 차이점
- PHP int 0값
- Laravel post등록
- Laravel Pagination
- git branch 정렬
- Laravel vite webpack
- Laravel의 쿼리빌더와 Eloquent의 차이
- Laravel 데이터 취급 비교
- Laravel Carbon
- 상류공정
- Laravel 라이프 사이클
- Laravel 서비스 컨테이너
- Laravel 데이터 삭제 처리
- Laravel artisan 명령어 정리
- PHP 7 8변경점
- 생소한 일본어
- vue.js의 computed 속성
- Laravel 이미지 폴더
- Laravel 컴포넌트 참조
- Laravel 서비스 프로바이더
- Laravel vaildation
- php trait
- TCP
- Laravel seeder 데이터
- PHP의 Null
- php artisan migrate use of undefined constant
- artisan serve란
- Laravel 인증 라이브러리
- Laravel 페이지네이션
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
글 보관함