Vue.js는 사용자 인터페이스를 개발하기 위한 프로그레시브 프레임워크입니다.
프로그레시브란?
-> 기능을 필요에 따라 단계적으로 적용할 수 있다는 것을 의미합니다.
Vue.js를 사용하면 기존의 웹 애플리케이션에 점진적으로 도입하거나 새로운 프로젝트를 처음부터 구축하는 데 사용할 수 있습니다.
가볍고 빠른 속도: Vue.js는 가볍고 성능이 우수하며, 최적화된 가상 DOM(Virtual DOM)을 사용하여 웹 애플리케이션의 렌더링 속도를 향상시킵니다.
컴포넌트 기반 아키텍처: Vue.js는 웹 애플리케이션을 작은 단위인 컴포넌트로 분리하여 개발할 수 있습니다. 이러한 컴포넌트 기반 아키텍처는 코드의 재사용성과 유지 보수성을 향상시켜 줍니다.
단방향 데이터 흐름: Vue.js는 데이터의 흐름을 단방향으로 유지하여 애플리케이션의 상태 관리를 쉽게 만듭니다. 이를 통해 예측 가능하고 유지 보수하기 쉬운 코드를 작성할 수 있습니다. 또한 v-model과 같은 방법으로 양뱡향 데이터 바인딩이 가능합니다.
초기 입문: Vue.js는 간단한 문법과 직관적인 API를 제공하여 쉽게 배울 수 있습니다. 이미 HTML, CSS, JavaScript에 익숙한 개발자라면 빠르게 효과적인 웹 애플리케이션을 개발할 수 있습니다. 또한 React를 배운 개발자라면 기본 아키텍처가 비슷하기 때문에 입문이 더욱 쉽습니다.
유연한 사용범위: Vue.js는 단일 페이지 애플리케이션(SPA)뿐만 아니라, 복잡한 웹 애플리케이션의 구축에도 사용될 수 있습니다. 또한 다른 프레임워크와 혼합하여 사용할 수도 있습니다.
Vue.js를 간단한 예제 코드를 통해 살펴보겠습니다. 다음은 "Hello, Vue!"를 Vue.js를 CDN방식으로 출력하는 간단한 Vue 앱입니다.
<!DOCTYPE html>
<html>
<head>
<title>Hello Vue</title>
<script src="https://unpkg.com/vue@next"></script>
</head>
<body>
<div id="app">
<p>{{ message }}</p>
</div>
<script>
const app = Vue.createApp({
data() {
return {
message: 'Hello, Vue!'
};
}
});
app.mount('#app');
</script>
</body>
</html>
이번에는 Vue CLI를 사용하여 생성한 Vue.js 프로젝트에서 간단한 예제를 살펴보겠습니다.
// HelloWorld.vue
<template>
<div class="hello">
<h1>{{ greeting }}</h1>
<p>Welcome to my Vue.js app!</p>
</div>
</template>
<script>
export default {
data() {
return {
greeting: 'Hello, Vue!'
};
}
};
</script>
// scoped 속성을 이용해 현재 컴포넌트에만 css 속성이 들어가도록 설정
<style scoped>
.hello {
text-align: center;
margin-top: 40px;
}
</style>
// App.vue
<template>
<div id="app">
<HelloWorld /> // react 컴포넌트와 같이 사용
</div>
</template>
<script>
// 미리 만들어놓은 컴포넌트를 가져온다.
import HelloWorld from './components/HelloWorld.vue';
export default {
// 컴포넌트를 등록해야 사용할 수 있다
components: {
HelloWorld
}
};
</script>
이렇게 Vue.js를 사용하면 보다 간결하고 유지보수하기 쉬운 코드를 작성할 수 있습니다. 공식문서와 강의를 통해 vue를 학습하면 좋을 것 같습니다.
https://v2.ko.vuejs.org/v2/guide