처음으로 vue를 배웠다. 바닐라 js를 공부하면서 빨리 프레임워크를 배우고 싶었기 때문에 어려웠지만 재미있었다.
확실히 바닐라js보다 훨씬 편리한 것 같다. 빨리 익혀서 프로젝트도 해보고 싶다.
하지만 전부 처음 배우는 개념들이어서 이해하는데 시간이 많이 걸렸고, 아직 확실히 이해가 가진 않는다.
오늘 배운 내용을 전체적으로 간략하게 적으면서 큰 흐름을 정리해보려고 한다.
Vue 전역객체의 createApp함수를 실행해서 새로운 어플리케이션 인스턴스를 (app)반환받는다.
createApp함수에는 인자로 객체(컴포넌트)가 들어가는데, 여러 메소드와 프로퍼티들이 옵션으로 선언되어있다.
옵션 종류
mount함수를 이용하여 원하는 dom요소의 선택자를 인자로 넣어 app과 연결한다. 이때 반환되는 값은 컴포넌트 인스턴스로 viewModel(=vm)이라고 부른다.
const RootComponent = { /* options */ }
const app = Vue.createApp(RootComponent)
const vm = app.mount('#app')
<body>
// 옵션 객체에 정의한 데이터와 메소드를 연결된 태그 안에서 사용할 수 있다
<div id="app">
<h1>{{ msg }}</h1>
</div>
<script>
const Component = {
data() {
return {
msg: 'Hello vue',
};
},
};
const vm = Vue.createApp(Component).mount('#app');
</script>
</body>
<span>메시지: {{ msg }}</span>
<a v-bind:href="url"> ... </a>
<!-- 약어 -->
<a :href="url"> ... </a>
<!-- 동적 전달인자와 함께 쓴 약어 -->
<a :[key]="url"> ... </a>
<!-- 전체 문법 -->
<a v-on:click="doSomething"> ... </a>
<!-- 약어 -->
<a @click="doSomething"> ... </a>
<!-- 동적 전달인자와 함께 쓴 약어 -->
<a @[event]="doSomething"> ... </a>
라이프 사이클의 종류
이 과정들에서 라이프사이클 훅이라는 함수들을 실행해 사용자가 특정 단계에서 로직을 추가할 수 있다.