[Java Web programming] [Spring Boot + Vue.js] 게시판 만들기 - Tooltip, Snackbar

이번 포스팅에서는 보충 설명 및 내용을 표시해주는 말풍선 같은 툴팁과 JavaScript의 Alert과 유사한 스낵바에 대해 알아보자

 

툴팁(Tooltip) 컴포넌트

모바일 화면에서 게시판 상세 댓글 내역에 작성자, 작성시간 아이콘 터치 시 툴팁으로 상세내용을 표시하도록 구현

 

구현

 
 
<template>
 
<div>
 
<v-tooltip v-bind="$attrs">
 
<template v-slot:activator="{ on, attrs }">
 
<v-icon v-on="on" v-bind="attrs" style="padding:0 10px;">
 
{{ iconName }}
 
</v-icon>
 
</template>
 
<span> {{ title }}<br />{{ content }} </span>
 
</v-tooltip>
 
</div>
 
</template>
 
 
 
<script>
 
export default {
 
props: {
 
iconName: String,
 
title: String,
 
content: String,
 
},
 
}
 
</script>
  • v-bind="$attrs" 사용 시 선택적으로 필요한 속성만 자식 컴포넌트에 렌더링 할 수 있다.
  • v-slot:activator="{ on, attrs }" 는 activator 이름을 가진 슬롯에서 on, attrs 슬롯 속성(slot props)을 가져온다는 의미이다.
  • props 속성으로 iconName, title, content를 받아 툴팁을 구성한다.

사용 방법

툴팁 컴포넌트 사용 예시로 게시판 상세 내 댓글 구역의 작성자, 작성일시 아이콘 부분이다.

 
 
<Tooltip
 
bottom
 
iconName="mdi-account"
 
title="작성자"
 
:content="reply.writer"
 
/>

동작 확인

 

 

스낵바(Snackbar) 컴포넌트

게시글 작성, 수정, 삭제 성공 시 하단에 JavaScript Alert 창 처럼 알림창을 표시한다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 

구현

1. Snackbar.vue

 
 
<template>
 
<v-snackbar v-model="sb.show" :color="sb.color" :timeout="3000">
 
{{ sb.msg }}
 
<template v-slot:action="{ attrs }">
 
<v-btn color="white" text v-bind="attrs" @click="sb.show = false">
 
<v-icon dark dense>mdi-close-circle-outline</v-icon>
 
</v-btn>
 
</template>
 
</v-snackbar>
 
</template>
 
 
 
<script>
 
import { mapState } from 'vuex'
 
export default {
 
computed: {
 
...mapState(['sb']),
 
},
 
}
 
</script>
  • v-model="sb.show" 는 store에 저장된 show 값을 바탕으로 스낵바 표시 유무를 설정한다.
  • timeout 은 스낵바가 표시되는 시간을 설정한다. (단위는 밀리세컨드)
  • @click="sb.show = false" 는 닫기 버튼 클릭 시 show 값을 변경하여 스낵바를 보이지 않도록 한다.

2. store/index.js

 
 
import Vue from 'vue'
 
import Vuex from 'vuex'
 
 
 
Vue.use(Vuex)
 
 
 
// 스낵바 설정
 
export const SET_SNACKBAR = 'SET_SNACKBAR'
 
 
 
export default new Vuex.Store({
 
state: {
 
sb: {
 
show: false,
 
msg: '',
 
color: '',
 
},
 
},
 
mutations: {
 
[SET_SNACKBAR](state, sb) {
 
state.sb = sb
 
},
 
},
 
actions: {},
 
modules: {},
 
})
  • mutations 명을 변수로 선언한 이유는 오타를 방지하기 위함이다.
  • state 를 객체로 선언하여 mutations 호출 시 객체를 전달받아 간단하게 스낵바를 제어할 수 있다.

사용 방법

스낵바 컴포넌트는 게시글 작성, 수정, 삭제 성공 시 표시된다.

 
 
this.$store.commit('SET_SNACKBAR', {
 
show: true,
 
msg: 'Delete Complete',
 
color: 'error',
 
})

동작 확인

 

 

 

[출처] https://dev-jsk.tistory.com/130

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
206 [Java Web programming] [Spring] WebFlux란 무엇인가? - 개념(특징), MVC와 비교, 사용 이유 file 졸리운_곰 2023.07.18 78
205 [Java Web programming] [Spring Boot + Vue.js] 게시판 만들기 - 에러 file 졸리운_곰 2023.04.07 72
204 [Java Web programming] [Spring Boot + Vue.js] 게시판 만들기 - 버튼 file 졸리운_곰 2023.04.07 82
203 [Java Web programming] [Spring Boot + Vue.js] 게시판 만들기 - Toast UI Editor, Viewer file 졸리운_곰 2023.04.07 67
» [Java Web programming] [Spring Boot + Vue.js] 게시판 만들기 - Tooltip, Snackbar file 졸리운_곰 2023.04.07 80
201 [Java Web programming] [Spring Boot + Vue.js] 게시판 만들기 - 날짜, 시간, 날씨 file 졸리운_곰 2023.04.07 76
200 [Java Web programming] [Spring Boot + Vue.js] 게시판 만들기 - 구성 졸리운_곰 2023.04.07 77
199 [Java Web programming] [Spring Boot + Vue.js] 게시판 만들기 - 소개 file 졸리운_곰 2023.04.07 85
198 [Java Web programming] SpringBoot, Vue 연동하기 file 졸리운_곰 2023.01.30 99
197 [JSP] [jstl ] case when 중첩 방법 file 졸리운_곰 2023.01.24 69
196 [JSP] intelliJ로 JSP 프로젝트 생성, Servlet 실행해보기 file 졸리운_곰 2022.12.31 95
195 [JSP} Jsp 커스텀 태그라이브러리(Custom Tag Library Descriptor) 생성 및 사용 졸리운_곰 2022.12.07 90
194 [JSP] JSP 커스텀 태그(Custom Tag) - 태그파일 file 졸리운_곰 2022.12.07 78
193 [Java Web programming] Velocity 사용하기 졸리운_곰 2022.08.11 89
192 [java html template engine] [Velocity] velocity 기본 문법 file 졸리운_곰 2022.08.10 90
191 [Java Web 프로그래밍] SPRING BOOT SSO 자료 정리 file 졸리운_곰 2022.07.27 113
190 [Spring] 스프링 tiles 사용하기! file 졸리운_곰 2021.10.17 108
189 [JSP][Java] [JSP] JSP 문법 구조 / include를 활용해 layout 나누기 file 졸리운_곰 2021.09.09 89
188 [SpringBoot] 타임리프(Thymeleaf) Thymleaf for template engine file 졸리운_곰 2021.09.05 77
187 [스프링부트] Spring Boot + Thymeleaf CRUD Example file 졸리운_곰 2021.09.03 76
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED