ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [vue]메서드
    react+vue 2022. 11. 9. 16:16

    숫자 증가시키기 예제

    • data에 number 변수 정의
    <template>
      <h1>{{number}}</h1>
    </template>
    
    <script>
    
    export default {
      name: 'App',
      data:()=>{
        return {
          number:0
        }
      }
    }
    </script>
    

    • methods에 number 더하는 함수 추가, 버튼 추가
    <template>
      <h1>{{number}}</h1>
      <button v-on:click="addNumber">증가</button>
    </template>
    
    <script>
    
    export default {
      name: 'App',
      data:()=>{
        return {
          number:0
        }
      },
      methods:{
        addNumber: ()=>{
          number++;
        }
      }
    }
    </script>
    

    number is not defined

    number 변수가 정의되지 않았다는 에러가 난다.

    • this 키워드 사용
    <template>
      <h1>{{number}}</h1>
      <button v-on:click="addNumber">증가</button>
    </template>
    
    <script>
    
    export default {
      name: 'App',
      data:()=>{
        return {
          number:0
        }
      },
      methods:{
        addNumber: ()=>{
          return this.number++;
        }
      }
    }
    </script>
    

    화면은 뜨지만 버튼을 클릭하면

    TypeError: Cannot read properties of undefined (reading 'number')

    여전히 에러가 뜬다.

    • 기본 함수 형식 사용
    <template>
      <h1>{{number}}</h1>
      <button v-on:click="addNumber">증가</button>
    </template>
    
    <script>
    
    export default {
      name: 'App',
      data:()=>{
        return {
          number:0
        }
      },
      methods:{
        addNumber(){
          this.number++;
        }
      }
    }
    </script>
    

     

    화살표 함수를 쓰면 scope가 달라지기 때문에 this가 가리키는 영역이 달라진다.

    'react+vue' 카테고리의 다른 글

    [vue]v-for 조건부 랜더링(template태그)  (0) 2022.11.09
    [vue]v-for  (0) 2022.11.09
    [vue]v-show와 v-if의 차이  (0) 2022.11.09
    [vue] 조건부 렌더링(v-if)  (0) 2022.11.09
    [vue]템플릿문법 (v-bind, class)  (0) 2022.11.09

    댓글

Designed by Tistory.