반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 화살표 함수 중괄호
- 참조형 props의 default
- d3 지도 타입스크립트
- 참조형 default
- vue draggable 차트 안나옴
- firebase id 자동
- $fetch
- commonjs와 ecmascript modules(esm)
- 인터넷 거버넌스
- repaint
- vue 컴포저블 함수
- reflow
- 함수형 프로그래밍
- d3 지도 툴팁
- Learning React
- 화살표 함수 {}
- nuxt universal rendering
- git
- in-memory pm2 is out-of-date
- ToDo
- d3 지도
- vue composable 함수
- component is already mounted please use $fetch instead.
- pm2 업데이트 에러
- vue3 drag and drop
- ecmascript modules(esm)
- vuedraggable
- d3 지도 확대/축소
- pm2 버전 충돌
- cloud firestore id auto increment
Archives
- Today
- Total
빵 입니다.
참조형 props의 default 값 설정하기 본문
반응형
현재 작업 중인 프로젝트에 Typescript를 도입해서 사용 중인데
type-check를 해보니 정말 개판인거에요.(네. 제가 개판으로 사용했습죠...)
그래서 에러 뜬 파일들을 일일이 열어서 수정을 했는데...
소스도 깨끗하지 않더라고요.
props를 가져올 때의 default 값도 제각각~

대충 알고 막연하게 사용했던 자신을 반성하며...
정리를 해보았습니다!
여기서 default❗
defineProps({
list: {
type: Array as () => { label: string; value: number }[],
default: () => []
},
paginationValue: {
type: Object as () => PaginationValue,
default: () => ({})
},
})
다행히(?) 항상 함수형으로 가져와서 컴포넌트 간 이슈는 없었지만...
() => [], () => ([]), () => {}, () => ({})
너무 혼용해서 사용을 했었읍니다..
그래서 정리한 내용 ❗
📌 배열
🧿 default: []
- 정적으로 배열 리터럴을 기본값으로 설정한다.
- 문법적으로는 유효하지만, 배열이 참조형 데이터이므로, 모든 컴포넌트 인스턴스가 동일한 배열 참조를 공유하게 된다.
- 👉🏻 컴포넌트를 10번 사용하면 10개의 관련 데이터가 하나의 그릇([])을 사용한다니..끔찍
🧿 default: () => [] ⭕
- 컴포넌트 인스턴스가 생성될 때마다 새로운 배열을 생성하여 기본값을 설정한다.
- 각 컴포넌트 인스턴스는 독립적인 배열을 갖는다.
- * 참조형 데이터(배열, 객체 등)의 기본값으로 사용하는 것이 권장됩니다.
🧿 default: () => ([])
- default: () => []와 동일한 결과를 제공한다.
- 괄호를 추가한 것은 문법적인 차이일 뿐 기능상 차이는 없다.
- 객체 사용 시 객체 리터럴을 반환하기 위해 사용하는 거고, 배열에선 의미 없다.
- default: () => ([]) 이렇게 입력해도 prettier가 알아서 default: () => [] 이렇게 변환해 준다.
📌 객체
🧿 default: {}
- 정적으로 객체 리터럴을 기본값으로 설정한다.
- 👉🏻 배열의 경우와 마찬가지로 모든 컴포넌트 인스턴스가 동일한 객체 참조를 공유한다.
🧿 default: () => {}
- 빈 함수를 반환하는 함수이다.
- 값을 반환하지 않기 때문에 기본값이 undefined가 된다.
const fn = () => {}; // 빈 화살표 함수
console.log(fn()); // undefined
🧿 default: () => ({}) ⭕
- 빈 객체를 반환하는 함수이다.
- 컴포넌트 인스턴스가 생성될 때마다 새로운 빈객체를 생성하여 기본값을 설정한다.
- 각 컴포넌트 인스턴스마다 독립적인 객체를 가질 수 있어 참조형 데이터의 기본값으로 사용하기에 적합하다.
const fn = () => ({}) // 빈 객체를 반환하는 화살표 함수
console.log(fn()); // {}
반응형
'프론트엔드 > Vue' 카테고리의 다른 글
Composable 함수 (0) | 2025.03.21 |
---|---|
D3.js 지도 그리기(w/ 확대ㆍ축소 기능과 툴팁) (0) | 2025.03.11 |
Chart.js 툴팁 레이블 색상 변경, 레전드 레이블 색상 변경 (0) | 2024.07.31 |
Chart.js 축 font-size 조절 (0) | 2024.07.30 |
화면별 권한 설정 (0) | 2024.03.04 |