profile image

L o a d i n g . . .

computed

    <div id="app">
        <p>{{reversedMessage}}</p>
        <button v-on:click="reversedMessage">문자열뒤집기</button>
    </div>
    <script>
        new Vue({
            el: '#app',
            data: {
                message: 'Hello Vue.js!'
            },
            computed: {
                reversedMessage: function(){
                    return this.message.split('').reverse().join('');
                }
            }
        })
    </script>


methods

    <div id="app">
        <p>{{message}}</p>
        <button v-on:click="reverseMsg">문자열뒤집기</button>
    </div>
    <script>
        new Vue({
            el: '#app',
            data: {
                message: 'Hello Vue.js!'
            },
            methods: {
                reverseMsg: function(){
                    this.message = this.message.split('').reverse().join('');
                    return this.message;
                }
            }
        })
    </script>




methods 속성은 수행할 때마다 연산을 하기때문에 별도 캐싱x, 호출할때만 로직수행(수동적)
computed 속성은 데이터가 변경되지 않는 한 이전의 계산 값ㅇ르 가지고 있다가 필요할 때 바로 반환

복잡한 연산을 반복수행해서 화면에 나타낼 때 : computed






watch

데이터 변화를 감지하여 자동으로 특정 로직수행
computed는 내장 API를 활용한 간단 연산에 적합하고 watch 속성은 데이터호출과 같이 시간이 상대적으로 더 많이 소모되는 비동기 처리에 적합

    <div id="app">
        <input v-model="message">
    </div>
    <script>
        new Vue({
            el: '#app',
            data: {
                message: 'Hello Vue.js!'
            },
            watch: {
                message: function(data){
                    console.log("message의 값이 바뀝니다 : ", data);
                }
            }
        })
    </script>

실시간으로 바뀌는것을 확인할 수 있다

v-model 속성은 input, textarea, select 속성에만 사용가능








반응형

'개발 > Javascript' 카테고리의 다른 글

[React] 미니프로젝트 - 배포하기 w.Firebase  (0) 2022.08.20
[Javascript] ES6  (0) 2022.08.19
[Vue] HTTP 통신  (0) 2022.08.17
[Javascript] keyup 이벤트  (0) 2022.08.17
[Vue] 라우터  (2) 2022.08.16
복사했습니다!