Dialog
Dialog는 사용자에게 중요한 메시지를 알리거나, 확인을 요청할 때 사용합니다.
useDialog()
유틸을 통해alert
,confirm
,checkbox
,prompt
등의 팝업을 간편하게 호출할 수 있습니다.
TIP
.onOk(()=>{})
:확인
버튼 클릭시 실행.onCancel(()=>{})
:취소
버튼 클릭시 실행
Confirm
- 확인/취소 버튼이 있는 팝업을 띄웁니다.
- 주로 페이지 이동이나 삭제 등 사용자의 확인이 필요한 작업에 사용합니다.
typescript
dialog.confirm('메세지', {옵션명:옵션})
기본 사용
vue
<q-btn @click="confirm">confirm</q-btn>
<script setup>
import useDialog from 'src/components/composables/usePopupUtil';
const dialog = useDialog();
const confirm = () => {
dialog.confirm('저장되지 않은 변경사항이 있습니다. 그래도 이동하시겠습니까?')
.onOk(() => {
})
.onCancel(() => {
});
}
</script>
제목, 색상 변경
vue
<q-btn @click="confirm2">confirm</q-btn>
<script setup>
import useDialog from 'src/components/composables/usePopupUtil';
const dialog = useDialog();
const confirm2 = () => {
dialog.confirm('이 작업은 되돌릴 수 없습니다.', {
title: '경고',
color: 'red',
})
.onOk(() => {
console.log('삭제');
})
.onCancel(() => {
console.log('삭제 취소');
});
}
</script>
커스텀 버튼 텍스트
vue
<q-btn @click="confirm3">confirm</q-btn>
<script setup>
import useDialog from 'src/components/composables/usePopupUtil';
const dialog = useDialog();
const confirm3 = () => {
dialog.confirm('로그아웃 하시겠습니까?', {
ok: {
label: '로그아웃',
color: 'primary'
},
cancel: {
label: '취소',
flat: true
}
})
.onOk(() => {
console.log('로그아웃');
})
.onCancel(() => {
console.log('로그아웃 취소');
});
}
</script>
Alert
- 확인 버튼만 있는 단순 알림 팝업입니다.
- 주로 작업 완료 안내 등 간단한 메시지 출력에 사용합니다.
typescript
dialog.alert('메세지', {옵션명:옵션})
기본 사용
vue
<q-btn @click="alert">alert</q-btn>
<script setup>
import useDialog from 'src/components/composables/usePopupUtil';
const dialog = useDialog();
const alert = () => {
dialog.alert('저장되었습니다.')
}
</script>
제목, 색상 변경
vue
<q-btn @click="alert2">alert</q-btn>
<script setup>
import useDialog from 'src/components/composables/usePopupUtil';
const dialog = useDialog();
const alert2 = () => {
dialog.alert('업데이트가 필요합니다.', { title: '경고', color: 'orange' })
.onOk(() => {
console.log('업데이트 경고 확인');
});
}
</script>
Checkbox
- 다중 항목 선택용 팝업입니다.
- 사용자는 여러 개의 항목을 선택할 수 있으며, 결과는 배열로 반환됩니다.
typescript
dialog.checkbox('메세지', '타이틀', [{label:'라벨', value:'값', disable:true or false}])
vue
<q-btn @click="checkbox">checkbox</q-btn>
<script setup>
import useDialog from 'src/components/composables/usePopupUtil';
const dialog = useDialog();
const checkbox = () => {
dialog.checkbox('선택할 항목을 고르세요', '항목 선택', [
{ label: '옵션 A', value: 'A' },
{ label: '옵션 B', value: 'B', disable: true },
{ label: '옵션 C', value: 'C' }
])
.onOk((selected) => {
console.log('선택된 항목:', selected);
})
.onCancel(() => {
console.log('선택이 취소되었습니다');
});
}
</script>
Prompt
- 사용자 입력을 받을 수 있는 팝업입니다.
- 텍스트, 숫자, 비밀번호 등 다양한 타입을 받을 수 있습니다.
typescript
dialog.prompt('메세지', '타이틀', '타입')
기본 사용
vue
<q-btn @click="prompt">prompt</q-btn>
<script setup>
import useDialog from 'src/components/composables/usePopupUtil';
const dialog = useDialog();
const prompt = () => {
dialog.prompt('입력바랍니다')
.onOk((value) => {
console.log('사용자가 입력한 값:', value);
})
.onCancel(() => {
console.log('입력이 취소되었습니다');
});
}
</script>
타입 변경
vue
<q-btn @click="prompt2">prompt</q-btn>
<script setup>
import useDialog from 'src/components/composables/usePopupUtil';
const dialog = useDialog();
const prompt2 = () => {
dialog.prompt('비밀번호를 입력해주세요', '비밀번호 입력', 'password')
.onOk((password) => {
console.log('비밀번호:', password);
});
}
</script>
Toast
- 사용자에게 간단한 피드백이나 정보를 잠깐 보여주는 메시지입니다.
- 저장 완료, 삭제됨, 네트워크 오류 등을 알릴 때 사용합니다.
- 이 컴포넌트의 자세한 내용은 공식문서를 참고하세요.
vue
<q-btn @click="toast">Toast</q-btn>
<script setup>
import { useQuasar } from 'quasar';
const $q = useQuasar();
const toast = () => {
$q.notify({
message: '메세지입니다',
color: 'purple'
})
}
</script>