본문 바로가기

카테고리 없음

React, Vue, Angular 난 React만 아는데.. Vue? View???

 

1. Vue가 뭔지 + 왜 사용하는지

 

Vue란?

 

Vue.js는 웹 페이지 화면을 개발하기 위한 프레임워크입니다.

 

 

근데 이걸 왜 react, angular와 비교해서 3 대장으로 놓냐?

 

- 주 문법이 자바스크립트와 많이 다르지 않아서 접근성이 react와 angular에 비해서 높다.

 

- 가볍고 성능이 빠르다

 

- React의 virtual DOM, Angular의 data Binding의 장점을 갖고 있습니다.

 

virtual DOM이란?


virtual DOM은 실제돔에서 처리를 하는게 아니라, 가상 돔과 메모리에서 미리 처리를 한 후 실제 DOM에 반영이 되는 것이다.
data Binding이란?


바인딩(Binding)이란 묶는다는 의미로, 웹 프로그래밍에서는 UI를 통해 표시하고자 하는 데이터를 실제 데이터와 연결해 주는 프로세스를 의미한다.

 

2. Vue 설치하기

npm install vue

 

근데 나는 vite를 사용하여서 초기세팅했다.

$ npm create vite@latest

$ yarn create vite

 

3. Vue 사용해보기

일단 사용해 보기 전에 알아야 할 문법 사항들이 있는데

 

1. 데이터 바인딩 사용하는 법 (텍스트 보간법)

 

텍스트 보간법은 주로 {{ }} 콧수염괄호를 사용한다.

 

뷰 인스턴스에서 정의한 것을 데이터바인딩을 통해 보여주기

 

<div>{{ text }}</div>

new Vue({
	data: {
		text: 'Hello World';
	}
})

 

2. 디렉티브

 

자주 쓰는 문법들만 정리해 봤습니다!

 

v-text js innetText
v-html js innerHTML
v-if 조건부 렌더
v-else " "
v-else-if " "
v-for 데이터 개수만큼 반복
v-bind 동적으로 엘리먼트 속성 설정
v-model input 값 구하기

 

 

이제 예제를 한번 보겠습니다.

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vue.js 데이터 바인딩과 디렉티브 예제</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
</head>
<body>
    <div id="app">
        <input type="text" v-model="message">
        <p v-if="message">당신이 입력한 메시지는: {{ message }}</p>
        <p v-else>메시지를 입력하세요.</p>
    </div>

    <script>
        new Vue({
            el: '#app',
            data: {
                message: '' // 입력 필드와 바인딩되는 데이터
            }
        });
    </script>
</body>
</html>

 

이 코드는 메시지를 input란에 입력했을 시에 p태그가 보이고, 입력이 되어있지 않다면 보이지 않는 코드입니다.

 

new Vue의 el은 어떤 태그에 이러한 코드를 시작할까를 알려주는 것이라고 보면 됩니다.

아래의 data는 div id="app"에 명시돼있는 input란 안에 v-model로 구해진 input값을 data: { message }를 통해 사용자가

입력한 메시지를 보여줍니다.