Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 파이썬
- 컴포넌트
- dynamic programming
- JavaScript
- vue.js
- Python
- math
- Algorithm
- sorting
- github
- 백준
- greedy
- string
- array
- 변수
- 자료구조
- scss
- computed
- JavaSceipt
- HTML
- 자료형
- 프로그래머스
- 코딩테스트
- leetcode
- java
- SasS
- 알고리즘
- hash table
- CSS
- JS
Archives
- Today
- Total
Posis
[Vue.js] computed feat.methods 본문
이번 포스팅에서는 computed에 대해서 알아보겠습니다.
computed
- 연결된 data의 값이 변경되었을 때, 복잡한 계산식을 계산해서 값을 캐싱해서 return 해주는 속성입니다.
캐싱
- 값을 계산하여 잠시 동안 저장해두는 것을 의미합니다.
<template>
<p>{{ msg }}</p>
<button @click="changeMag">문자열 뒤집기</button>
<hr />
<p v-if="isDone">{{ reverseString }}</p>
</template>
<script>
export default {
name: 'App',
data() {
return {
msg: 'Hello Vue.js!!',
isDone: false,
};
},
computed: {
reverseString() {
console.log('computed');
return this.msg
.split('')
.reverse()
.join('');
},
},
methods: {
changeMag() {
console.log('methods');
if (this.isDone) this.isDone = false;
else this.isDone = true;
},
},
};
</script>
<style>
p {
padding: 10px;
text-align: center;
font-size: 20px;
}
button {
display: block;
margin: 0 auto;
}
</style>
위 예제 코드는 'Hello Vue.js!!' 문자열을 뒤집어주는 코드입니다.
함수를 살펴보면 reverseString()은 msg의 문자열을 뒤집어주는 역할, changeMsg()는 isDone의 boolean값을 바꿔주기만 한다.
예제 코드를 실행하면 나오는 첫 화면입니다.
여기서 문자열 뒤집기 버튼을 클릭하면 'Hello Vue.js!!'가 뒤집어진 문자열이 화면에 나타나게 됩니다.
이때 콘솔 창을 확인해보면 methods와 computed가 출력된 것을 알 수 있습니다.
위 사진을 보면 computed는 버튼을 최초의 클릭했을 때 한 번만 출력하고 그 후로는 methods만 계속 출력하는 것을 알 수 있습니다. 이는 computed의 연결된 data값이 변경하지 않는다면 호출하지 않는 것을 알 수 있습니다.
computed와 methods의 차이
computed
- 반드시 return 값이 존재해야 합니다.
- 캐싱된 데이터만 사용합니다.
- 연결된 data가 변경되었을 경우에만 계산합니다.
- 매개변수를 받을 수 없습니다.
methods
- 명시적으로 호출될 때만 실행됩니다.
- 매개변수를 받을 수 있습니다.
728x90
'Vue.js' 카테고리의 다른 글
[Vue.js] 템플릿 약어 (0) | 2021.08.08 |
---|---|
[Vue.js] 클래스와 스타일 바인딩 (0) | 2021.08.08 |
[Vue.js] Getter와 Setter (0) | 2021.08.07 |
[Vue.js] 라이프사이클 (0) | 2021.07.31 |
[Vue.js] 시작하기, 장단점 (0) | 2021.07.30 |