완벽하게 Vue.js

[Vue.js][Ch1][Vue 시작하기] 선언적 렌더링과 입력 핸들링

써치킴 2022. 2. 26. 05:47

vue라는 하나의 단일 파일의 component 개념에서는 (SFC : Single File component)

template / script / style 세가지의 태그로 구성한다.

  • template - HTML
  • script - JavaScript
  • style - CSS (SCSS)
    • style이 필요하지 않으면 명시하지 않아도 된다.

데이터를 바꾸면 화면도 바뀐다 => 반응성(Reactivity)

App.vue

<template>
  <h1 @click="increase">    <!-- h1 태그를 클릭하면 increase 함수가 실행됨 -->
    {{ count }}             <!-- JavaScript에서 오는 데이터라는 의미로 {{ }} 사용 -->
  </h1>
</template>

<script>
export default {    // 객체 리터럴을 기본으로 내보내기
  data() {    // data(): function() { 과 동일
    return {  // 객체 데이터를 반환
      count: 0 
    }
  },
  methods: {
    increase() {    // 함수 생성
      // this는 script(태그) 부분을 지칭
      this.count += 1;
    }
  }

}
</script>

<style>
 h1 {
   font-size: 50px;
   color: yellowgreen;
 }
</style>

출력

count라는 데이터를 갱신하면 연결되어있는 브라우저의 화면도 같이 갱신된다 => 반응성(Reactivity)

만약, style을 선언했을 때 Error가 발생한다면

vue-style-loader를 4.1.2 버전으로 내려야 한다.

(나는 vue-style-loader가 4.1.3 버전이었음)