๊ณ์ฐํด์ผํ๋ ๋ชฉํ ๋ฐ์ดํฐ๋ฅผ ์ ์ํ๋ ์ ์ธํ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก, ์ ์ฅ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ(์บ์ฑ)ํจ์ผ๋ก ์ข ์ ๋์์ ๋ณ๊ฒฝ์ด ์ผ์ด๋๊ธฐ ์ ๊น์ง ํธ์ถ ๋์ง ์๋๋ค.
<div id="app">
<p>{{ reversedMessage }}</p>
</div>
<script>
new Vue({
el:'#app',
data : {
message: 'hello Vue!'
},
computed : {
reversedMessage: function(){
return this.message.split('').reverse().join('');
}
}
});
</script>
๋ ๋๋ง์ด ์ผ์ด๋ ๋๋ง๋ค ํญ์ ํจ์๋ฅผ ์คํํ๋ค.
<div id="app">
<p>{{ message }}</p>
<button v-on:click="reverseMsg">๋ฌธ์์ด ์ญ์</button>
</div>
<script>
new Vue({
el:'#app',
data: {
message:'Hello Vue!'
},
methods: {
reverseMsg: function(){
this.message = this.message.split('').reverse().join('');
return this.message;
}
}
})
</script>
- computed ์์ฑ์ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋์ง ์๋ ํ ์ด์ ์ ๊ณ์ฐ ๊ฐ์ ๊ฐ์ง๊ณ ์๋ค๊ฐ, ํ์ํ ๋ ๋ฐ๋ก ๋ฐํํด ์ค๋ค.
- methods ์์ฑ์ ์ํํ ๋๋ง๋ค ์ฐ์ฐ์ ํ๊ธฐ ๋๋ฌธ์ ๋ณ๋์ ์บ์ฑ์ ํ์ง ์๋๋ค.
- ๋ฐ๋ผ์, ๋ณต์กํ ์ฐ์ฐ์ ๋ฐ๋ณต ์ํํ๋ ํ๋ฉด์์๋ computed ์์ฑ์ ์ด์ฉํ๋ ๊ฒ์ด ํจ์จ์ ์ด๋ค.
๋ฐ์ดํฐ๊ฐ ๋ฐ๋๋ฉด ํน์ ํจ์๋ฅผ ์คํํ๋ ค๋ ๋ช ๋ นํ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์ ์ด๋ค.
<div id="app">
<input v-model="message">
</div>
<script>
new Vue({
el:'#app',
data: {
message: 'Hello Vue!'
},
watch: {
message: function(data){
console.log("message์ ๊ฐ์ด ๋ฐ๋๋๋ค :", data);
}
}
});
</script>