Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- virtual dom
- 주니어 개발자
- Transition
- 성능 최적화
- 뷰
- vue #vue.js #font #web-font
- 로컬스토리지
- VUE
- cubic-bezier
- NavigationDuplicated
- 렌더링 최적화
- css
- 안드로이드
- vuetify
- vue.js
- 세션
- Django
- frontend
- 장고
- lazy loading
- webpack
- 라우터
- 예외처리
- vue-router
- DOM
- 세션스토리지
- jest
- 프론트엔드
- 자바스크립트 #javascript #렌더링 #렌더링순서
- Router
Archives
- Today
- Total
한준호
computed / watch 본문
728x90
computed와 watch
가급적 computed를 사용할 것
computed는 선언형 방식이고, watch는 명령형 방식.
종속된 값이 변경되는것을 예상하여 미리 계산하여 선언해놓고 사용하는 방식이 computed
특정 데이터를 감시하고 변경에 대한 반응이 (함수 호출과 같은) 필요한 경우 watch
computed가 유용한 경우
- 데이터의 변화에 따라서 화면에 계산된 값을 화면에 출력해야 하는 경우
- 캐싱이 필요한 경우, 입력값이 같을 경우 기존 캐시된 데이터를 사용하기 때문에 computed 구현체가 호출되지 않습니다.
watch를 사용해야 하는 경우
- 단순한 계산 외에 비동기 처리 로직이 포함되는 경우
- 캐싱없이 매번 호출해야하는 경우
- 템플릿에 출력하지 않는 값의 변화를 관찰해야 할 경우
velog.io/@kyusung/vue-rendering-optimization
Vue 렌더링 성능 개선하기
Vue 성능 개선하기 함수형 컴포넌트(Functional Component) 사용하기 함수형 컴포넌트는 Dumb(멍청한, 바보같은) 컴포넌트 또는 Stateless (상태 없는) 컴포넌트로 불리며,data와 lifecycle을 가지지 않은 컴포
velog.io
예제
computed: {
user: {
get() {
return this.$store.state.user;
},
},
isLoggedIn: function() {
return this.$store.state.user;
},
language: function() {
return this.$i18n.locale;
},
},
watch: {
"$route.params.lessonId": function() {
this.lessonId = this.$route.params.lessonId;
console.log("LessonId: " + this.lessonId);
this.pageInit();
},
language: function() {
this.$router.push({ name: "Packages" }).catch((error) => {
if (error.name != "NavigationDuplicated") {
throw error;
}
this.$router.go("Packages");
});
},
},
created의 language함수는 프로젝트 전역에서 브라우저의 언어를 리턴하는 함수이다.
반면 watch함수에서 language함수는 변화를 감지하고 라우팅 로직을 처리하는 것을 볼 수 있다.
728x90
'Frontend > Vue js' 카테고리의 다른 글
컴포넌트 사이즈를 동적으로 가져오기 (0) | 2021.04.08 |
---|---|
부모-자식 간 데이터 전송 (0) | 2021.03.24 |
[Vue.js] DOM과 가상DOM (0) | 2021.03.08 |
React 와 Vue.js (0) | 2021.03.08 |
Vue.js Web Font(웹폰트) 적용 (0) | 2021.03.05 |
Comments