[Vue.js] 뷰 초 기본예제 Hello World 찍기, Vue.js Life Cycle 예제

개발환경 : window10

개발툴 : Atom

Vue 버전 : 2.5

 

Vue.js를 이용해서 Hello Vue.js 찍기
<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>Vue Sample</title>
  </head>
  <body>
      <div id="app">
        {{message}}
      </div>
      <script src="https://cdn.jsdelivr.net/npm/vue@2.5.2/dist/vue.js"></script>
      <script type="text/javascript">
        new Vue({
          el: '#app',
          data:{
            message : 'Hello Vue.js!'
          }
        });
      </script>
  </body>
</html>

- Vuejs도 기본구조는 html이기 때문에 html template 안에 작성되는 코드이다.

- new Vue로 선언되는 것이 뷰 인스턴스라고 한다.

- el 속성은 뷰 인스턴스가 그려질 지점을 지정한다. 이 속성은 CSS 선택자 규칙을 준수합니다.

- data 속성은 message 값을 정의하여 화면의 {{message}} 에 연결합니다. -> message가 m 이 되면 {{m}} 으로 출력하면 됩니다.

실제로 바꾸어서 브라우저에 띄우고 vue 개발자도구( Chrome 확장기능 )를 이용해서 Root 태그를 확인해보니 data 속성의 자식으로 nn이 지정되는 것을 볼 수 있습니다.

- 그리하여 message는 출력이 됩니다.

- 위에서 생성한 뷰 인스턴스는 id 선택자가 app 인 div 태그내에서만 scope(유효범위)를 가지게 됩니다.

 

뷰 속성
속성 설명
template 화면에 표시할 HTML, CSS 등의 마크업 요소를 정의하는 속성.
methods 화면 로직 제어와 관계된 메소드를 정의하는 속성, 마우스 클릭 이벤트 처리와 같이 화면의 전반적인 이벤트와 화면 동작과 관련된 로직 추가 가능.
created 뷰 인스턴스가 생성되자마자 실행할 로직을 정의할 수 있는 속성

 

뷰 인스턴스의 라이프사이클

- 위 뷰속성에서의 created 처럼 인스턴스의 상태에 따라 호출할 수 있는 속성들 -> 라이프 사이클 속성

- 라이프 사이클 속성에 따라 실행되는 로직을 라이프 사이클 훅이라고 한다.

뷰 인스턴스 라이프 사이클 다이어그램

 

라이프 사이클 실습 예제
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Vue Sample</title>
  </head>
  <body>
      <div id="app">
        {{message}}
      </div>
      <script src="https://cdn.jsdelivr.net/npm/vue@2.5.2/dist/vue.js"></script>
      <script type="text/javascript">
        new Vue({
          el: '#app',
          data:{
            message : 'Hello Vue.js!'
          },
          beforeCreate:function(){
            console.log("beforeCreate");
          },
          created:function(){
            console.log("created");
          },
          mounted:function(){
            console.log("mounted");
            //this.message = "Do Update";
          },beforeUpdate:function(){
            console.log("beforeupdate");
          }
          ,updated:function(){
            console.log("updated");
          }
        });
      </script>
  </body>
</html>

- 위 소스대로 브라우저에서 실행하면

위 소스 실행결과

- 개발자도구에서는 mounted 까지만 실행됨. 왜냐하면 뷰 인스턴스가 수정되는 작업이 없었기 때문!

- 그럼 만약 저 message를 "Do Update"로 수정하는 주석을 풀게되면????

 

- 이렇게 update까지의 라이프 사이클 훅(라이프사이클에 들어가는 로직)들이 실행되는 것을 볼 수 있음.

댓글

Designed by JB FACTORY