profile image

L o a d i n g . . .

article thumbnail image
Published 2022. 7. 1. 21:45

새로가는 프로젝트에서 뷰를 써야한대서 급 배우게 된 뷰

 

뷰? 

UI화면 개발 방법 중 하나인 MVVM패턴의 뷰 모델에 해당하는 화면단 라이브러리

 

용어 설명
뷰(View) 사용자에게 보이는 화면
돔(DOM) HTML 문서에 들어가는 요소(태그, 클래스, 속성 등)의 정보를 담고 있는 데이터트리
돔 리스너(DOM Listener) 돔의 변경 내역에 대해 즉각적으로 반응하여 특정 로직을 수행하는 장치
모델(Model) 데이터를 담는 용기. 보통은 서버에서 가져온 데이터를 JS 객체형태로 저장
데이터바인딩(Data Binding) 뷰에 표시되는 내용과 모델의 데이터를 동기화
뷰 모델(View Model) 뷰-모델 중간영역. 돔리스너와 데이터바인딩 제공

 

MVVM ?

Model - View - ViewModel 패턴

마크업 언어나 GUI 코드를 비즈니스 로직 또는 백엔드 로직과 분리하여 개발하는 소프트웨어 디자인 패턴

 

 

컴포넌트 기반 프레임워크?  컴포넌트?

컴포넌트 == 레고블록이라고 생각하면 된다. 조합하여 화면을 구성할 수 있는 불록(화면의 특정영역)

코드 재사용성 높음

 

 

뷰 인스턴스?

뷰로 화면을 개발하기 위해 생성해야하는 필수 기본단위

new Vue ({
	...
})

new Vue()로 인스턴스를 생성할 때 Vue를 생성자라고 부른다.

생성자 사용이유 : vue 개발에 필요한 기능을 미리 정의한 후, 사용자가 그 기능을 재정의하여 편리하게 사용하기 위해

 

뷰 인스턴스 옵션속성

- data, el, template(화면표시 마크업 요소 정의속성), methods(화면 로직제어 관계 메서드 정의속성), created(인스턴스 생성시 바로 실행할 로직 정의속성) 등

- el 속성 사용시 선택자는 CSS규칙과 같음

 

인스턴스 유효범위 

- el 속성범위 태그 아래에 오는 요소들로 제한됨

 

인스턴스 라이프 사이클

- 인스턴스 생성 > 화면 부착 > 내용 갱신 > 인스턴스 소멸

beforeCreate > Created > beforeMount > mounted > beforeUpdate > updated > beforeDestory > destroyed

 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vue Instance Lifecycle</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

</head>
<body>
    <div id="app">
        {{message}}
    </div>
    <script>
        new Vue({
            el: '#app',
            data: {
                message: 'Hello Vue.js'
            },
            beforeCreated: function(){
                console.log("beforeCreate");
            },
            created: function(){
                console.log("created")
            },
            mounted: function(){
                console.log("mounted")
            },
            updated: function(){
                console.log("updated")
            }
        })
    </script>
</body>
</html>

콘솔창 확인 시 updated 속성 함수는 보이지 않는다.

이유 : updated 라이프 사이클 훅은 뷰 인스턴스에서 데이터 변경이 일어나 화면이 다시 랜더링 됐을 때 호출되는 로직이기때문

 

 

mounted (호출단계)에서 기존에 정의된 data속성의 message값을 변경하면?

 

 

 

updated도 콘솔에 출력된 것을 확인 할 수 있다.

 

 

 

 

 

 

 

반응형
복사했습니다!