일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 인터넷 거버넌스
- d3 지도 확대/축소
- d3 지도 툴팁
- ecmascript modules(esm)
- vue composable 함수
- reflow
- 화살표 함수 중괄호
- 참조형 props의 default
- d3 지도
- pm2 업데이트 에러
- vue 컴포저블 함수
- 함수형 프로그래밍
- component is already mounted please use $fetch instead.
- vuedraggable
- repaint
- 참조형 default
- d3 지도 타입스크립트
- cloud firestore id auto increment
- ToDo
- 화살표 함수 {}
- vue3 drag and drop
- commonjs와 ecmascript modules(esm)
- $fetch
- nuxt universal rendering
- vue draggable 차트 안나옴
- in-memory pm2 is out-of-date
- git
- firebase id 자동
- pm2 버전 충돌
- Learning React
- Today
- Total
빵 입니다.
setup 안에서 ref를 콘솔로 찍으면 항상 null이 찍힌다. 본문
문제
<template>에 있는 <section ref=“section”>을 ref 로 가져오는데, 자꾸 null 찍힌다.
=> onMounted() 함수 안에서는 ref 값을 잘 가져온다.
=> setup() 안에 바로 변수를 만들어 할당한 후, section.value를 할당한다.
이유
setup()은 라이프 싸이클 중 create 시점에 실행되는데, 그 시점엔 <template>을 읽기 전이다.
아직 <template> html이 읽히지 않았기 때문에 항상 null 이 찍힌다.
html DOM 가져오는 <template>는 beforeMount 시점에 데이터를 가져온다.
ref는 mounted 시점에 html 데이터를 가져올 수 있다.
=> 데이터 가져오는 시점보다 더 빨리 변수를 선언하니까 항상 null
문제 해결
1. setup에 변수를 선언만 해놓고, mount 될 때 데이터를 push해준다.
2. dom을 쓰는 변수만 따로 빼서 관리한다.
현재는 dom 안쓰는 변수와 dom 쓰는 변수가 같은 오브젝트에 있는데, dom 안쓰는 변수는 그대로 setup에 두고, dom 쓰는 변수만 mount에서 처리 한다.
📌 Vue3에서 setup은 beforeCreate, created 라이프사이클 훅 사이에 실행되는 시점
📌 beforeCreate() => setup() => created() 순으로 호출
📌 setup 내부에서 beforeCreate와 created를 명시적으로 정의할 필요가 없다. setup 내부에 직접 작성하면 된다.
🫰🏻참고
https://learnvue.co/tutorials/vue-lifecycle-hooks-guide
https://v3.ko.vuejs.org/guide/composition-api-lifecycle-hooks.html
'프론트엔드 > Vue' 카테고리의 다른 글
[Vue warn]: inject() can only be used inside setup() or functional components. (0) | 2024.02.26 |
---|---|
Vue3와 Vuetify3 (0) | 2024.01.29 |
vue-router 변경 감지 (동적 라우팅의 문제점) (0) | 2022.12.12 |
template 과 slot (0) | 2022.09.26 |
a태그와 router-link 그리고 router.push() (0) | 2022.08.02 |