1. Composition API
Vue2(option API)는
data() {
}
methods: {
}
computed: {
}
위와 같은 구조를 가져서 data 안에 값들이 어떤 함수에 의해 변하는지 분산되어있어 추적이 어려웠다. 그러나, Vue3의 등장으로 setup 함수에 데이터가 그룹핑 되어 용이하게 데이터의 흐름을 파악할 수 있다. ex) react 처럼
2. setup 훅 내부에 data와 function을 구성한다. (반응형 data 전)
setup() {
let name = "sungjun";
let age = 30;
const handleClick = () => {
console.log(age);
};
return { name, age, handleClick };
}
};
3. ref, reactive 차이(반응형 data)
<template>
<div class="home">
<p>{{ person1.name }} {{ person1.age }}</p>
<button @click="clickEvent">click</button>
</div>
</template>
<script>
import { ref, reactive } from "vue";
export default {
setup() {
// 데이터를 ref, reactive로 감싸면 반응형으로 바뀐다.
const person1 = ref({ name: "nkh", age: 29 });
const person2 = reactive({ name: "nki", age: 26 });
const clickEvent = () => {
// ref로 감싼 값을 변경할 때는 value로 한번 들어가주고 값을 바꾼다.
person1.value.age = 30;
// reactive는 바로 값을 바꿉니다.
person2.age = 30;
};
// ref값은 return을 거치게되면
//person1.value.age는 person1.age로 바뀝니다. (template에서는 person1.age로 사용합니다)
return { person1, handleClick };
}
};
</script>
- ref는 function에서 값을 변경할 때 ref.value를 넣어주고 값을 바꾸나 reactive는 바로 값을 바꿀 수 있다.
- reactive는 원시값에 대해서는 반응형을 가지지 않는다. (string, number 값은 값을 바꾸어도 reactive하게 리렌더링 되지 않는다) 그래서 객체나 배열을 사용하는 경우에만 reactive를 사용할 수 있다, 그러나 ref는 원시값도 반응형 값으로 취급되어 리렌더링 됩니다.
- reactive나 ref나 둘 중 하나만 사용하는 것이 옳다. 그런데 reactive는 원시값을 반응형으로 사용되지 않기 때문에 ref를 처음부터 끝까지 사용하는 것이 좋다고 생각한다.
4. LifeCycle
setup 함수 내에서도 라이플사이클 훅 사용가능
mounted -> onMounted
unmounted -> onUnmounted
updated -> onUpdated
5. 함수 재사용 : mixins(composable)
'Front-end > Vue.js(Nuxt.js)' 카테고리의 다른 글
Vue3 vuex (0) | 2022.09.26 |
---|---|
watch vs computed (0) | 2022.09.25 |
웹팩 기본 & webpack.config.js 설정 (0) | 2022.09.15 |
Logging 라이브러리 winston (0) | 2022.05.22 |
Building a Nuxt App (0) | 2022.04.23 |