반응형 데이터를 만들기 위한 함수
ref
<script setup>
import { ref } from 'vue'
let id = 0
const newTodo = ref('')
const hideCompleted = ref(false)
const todos = ref([
{ id: id++, text: 'HTML 배우기', done: true },
{ id: id++, text: 'JavaScript 배우기', done: true },
{ id: id++, text: 'Vue 배우기', done: false }
])
- 사용 대상: 모든 종류의 값 (기본 데이터 타입 또는 객체/배열).
- 접근 방법: .value 속성을 통해 값에 접근하고 변경합니다.
- 주요 특징: 기본 데이터 타입(예: 문자열, 숫자, 불리언)에 반응성을 부여할 수 있으며, 객체나 배열에도 사용 가능하지만, 단일 값에 대한 반응성을 관리하는 데 주로 사용됩니다.
reactive
<script setup>
import { reactive } from 'vue'
let id = 0
const state = reactive({
newTodo: '',
hideCompleted: false,
todos: [
{ id: id++, text: 'HTML 배우기', done: true },
{ id: id++, text: 'JavaScript 배우기', done: true },
{ id: id++, text: 'Vue 배우기', done: false }
]
})
</script>
- 사용 대상: 객체나 배열.
- 접근 방법: .value 속성 없이 객체나 배열 내부의 속성에 직접 접근합니다.
- 주요 특징: 객체나 배열 전체에 대한 반응성을 부여합니다. 중첩된 객체나 배열을 포함하여 구조 내의 모든 데이터에 반응성이 적용됩니다.
reactive 사용의 이점
- 직관적인 접근과 수정: reactive 객체의 속성에 접근하거나 수정할 때, .value를 사용할 필요가 없습니다. 이는 코드를 좀 더 직관적으로 만들고, 일반 JavaScript 객체와 동일한 방식으로 작업할 수 있게 합니다.
- 중첩된 반응성: reactive를 사용하면, 객체 내의 중첩된 속성도 자동으로 반응성이 적용됩니다. 따라서 객체 내부 구조가 복잡해지거나 중첩된 경우에도, 별도의 처리 없이 모든 레벨에서 반응성을 유지할 수 있습니다.
- 코드 조직: 여러 반응형 데이터를 하나의 reactive 객체에 그룹화하여 관리할 수 있습니다. 이는 관련 데이터와 로직을 함께 묶어서 관리하기 편리하게 해줍니다, 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.
선택 기준
- 기본 타입(문자열, 숫자, 불리언 등)에 대한 반응성이 필요한 경우, 또는 Vue 템플릿에서 직접 참조되는 단일 변수에 대해서는 ref를 사용하는 것이 좋습니다.
- 객체나 배열과 같은 복합적인 데이터 구조에 대해 반응성을 제공하고, 중첩된 데이터 구조를 다루거나 여러 관련 데이터를 함께 관리해야 하는 경우 reactive를 사용하는 것이 더 적합할 수 있습니다.
'Web Develop > Frameworks and Libraries' 카테고리의 다른 글
[Vue3] Composition API (0) | 2024.04.03 |
---|---|
[Nuxt.js + Node.js] 백엔드에서 업로드한 정적파일을 프론트에서 참조하기 (0) | 2023.10.22 |
[Nuxt / Node.js] Error occurred while trying to proxy request 날 시에 (0) | 2023.09.19 |
[Vue.js] drag로 요소의 순서 변경하기 (0) | 2023.08.18 |
[NuxtJS] MathJax 수식 적용 (0) | 2023.06.12 |