본문 바로가기
Web Front 개발공부/Vue.js

Vue.js 강좌 뷰 인스턴스 06

by 슬기로운 동네 형 2022. 12. 26.
반응형

Vue.js 강좌 뷰 인스턴스 06

슬기형과 함께하는 Vue.js 강좌


이전 강좌

2022.12.25 - [Web Front 개발공부/Vue.js] - Vue.js 강좌 Html 요소의 속성 지정 v-bind 05

 

Vue.js 강좌 Html 요소의 속성 지정 v-bind 05

Vue.js 강좌 Html 요소의 속성 지정 v-bind 05 이전 강좌 2022.12.25 - [Web Front 개발공부/Vue.js] - Vue.js 강좌 사용가능한 데이터형(타입)과 종류 04 Vue.js 강좌 사용가능한 데이터형(타입)과 종류 04 Vue.js 강좌

ecolumbus.tistory.com


 Vue Instance 뷰 인스턴스

 이번 포스팅은 코딩보다는 Vue 인스턴스에 대해 개념적인 부분을 공부해 본다.

 인스턴스라는 말은 프로그램이 메모리에 올라가서 실행되는 것을 의미하는 정도로 이해하시기 바란다.

 

 1~5 강좌까지 특별하게 언급하지 않았지만 이미 우리는 인스턴스를 생성해 왔다.

 

 복습 및 개념을 차근차근 편하게 알아보자.

 

 인스턴스에서 사용할 수 있는 속성과 API는 다음과 같다.

new Vue({
  el: ,
  template: ,
  data: ,
  methods: ,
  created: ,
  watch: ,
});

Vue 인스턴스(객체)의 이름가 기능등이다.

당장 이해가 되지 않더라도 개념적인 부분을 숙지하고 있자.

강좌가 진행되면서 기능을 구현하다 보면 자연스럽게 깨닫게 된다.

  • el : 인스턴스가 그려지는 하면의 시작점(특정 HTML 태그)
  • template : 화면에 표시할 요소 (HTML, CSS 등) , 템플릿과 가상 DOM을 생성 
  • data : 뷰의 반응성(Reactivity)이 반영된 데이터 속성.
  • methods : 화면의 동작과 이벤트 로직을 제어하는 속성
  • created : 뷰의 라이프 사이클, 생명주기라고 통상 표현한다.
  • watch : 뷰-모델의 데이터를 감시한다. 이벤트 루프, 옵서버 패턴이 적용.

인스턴스 라이프 사이클

뷰의 라이프 사이클을 이해해야 하는 이유는 인스턴스의 특정 시점에 원하는 로직을 구현할 수 있기 때문이다.

예를 들어, 언제 서버에서 데이터를 받아올지, 유저가 버튼을 클릭 시 어떤 부분에 분기를 태워서 HTML을 컨트롤할지.

주로 사용하는 시점 4가지는 꼭 이해해야 한다.

  1. Creation(생성) 단계 : Vue 인스턴스가 실행된 후, 가장 처음 실행된다. 
  2. Mounting(장착) 단계 : 템플릿과 렌더링 된 Html Dom에 접근할 수 있는 단계.
  3. Updating(수정) 단계 : 데이터가 변할고 재 렌더링이 일어난 후에 일어나는 단계
  4. Destrucion(소멸) 단계 : 소멸 후 호출된다.

생명주기 - Life Cycle

인스턴스의 상태에 따라서 호출할 수 있는 속성들, 즉 속성마다 개발자가 추가한 커스텀 로직을 Life Cycle Hook이라고 한다.

  • beforeCreate
  • created
  • beforMount
  • mounted
  • beforeUpdate
  • updated
  • beforDestroy
  • destroyed

 

라이프 사이클 다이어그램

생명주기 흐름 코드로 확인해 보자.

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Vue.js sample</title>
    <link rel="stylesheet" href="css/style.css">
    <script src="js/vue.js"></script>

    <script>
        window.onload = function () {
            new Vue({
                el: "#app",
                data: {
                    msg: '안녕하세요'
                },
                created: function () {
                    console.log('created');
                },
                beforeMount: function () {
                    console.log('beforeMount');
                },
                mounted: function () {
                    console.log('mounted');
                },
                updated: function () {
                    console.log('updated');
                },
                destroyed: function () {
                    console.log('destroyed');
                },
            })
        }
    </script>
</head>
<body>
<h2>Vue.js 강좌 뷰 인스턴스 06</h2>
<div id="app">
    {{ msg }}
</div>
</body>
</html>

실행해서 콘솔을 확인해 본다.

 

라이프싸이클 훅 별 로그

 

반응형

댓글