[Vue]BaseModal을 활용한 간단한 모달 사용
·
vue.js
모달은 웹 애플리케이션에서 알림, 확인, 입력 등의 작업을 처리할 때 필수적인 UI 요소입니다.Vue3에서는 BaseModal을 만들고 이를 확장하여 간단한 알림 모달을 만들면, 코드 재사용성을 높이고 유지보수를 쉽게 할 수 있습니다.이 글에서는 기존 BaseModal을 활용하여 AlertModal을 구현하고, 이를 실제로 사용하는 방법을 알아보겠습니다.✅ 1. BaseModal을 활용하는 이유기본적인 모달 UI를 여러 곳에서 사용할 때, 매번 새로 만들면 코드가 중복되고 유지보수가 어려워집니다.따라서, BaseModal을 하나 만들고 이를 기반으로 다양한 모달을 확장하면 더 효율적입니다.우리가 만들 AlertModal은 다음과 같은 특징을 가집니다.BaseModal을 기반으로 만들어 재사용 가능제목과 ..
[Vue]디버깅하는 2가지 방법
·
vue.js
이번 글에서는 버튼을 누르면 숫자가 증가하는 간단한 Vue.js 예제를 만들고, 이를 웹 브라우저, VS Code에서 디버깅하는 방법을 알아보겠습니다. 🚀🏗️ 1. 버튼을 누르면 숫자가 증가하는 Vue 예제 만들기먼저, 버튼을 클릭할 때 숫자가 증가하는 간단한 Vue 컴포넌트를 만들어보겠습니다. 현재 숫자: {{ count }} + 숫자 증가 🔹 버튼을 클릭하면 increment() 함수가 실행되면서 count 값이 증가합니다.🔹 브라우저나 콘솔에서 숫자가 증가하는 걸 확인할 수 있습니다. 동작확인🔎 2. 웹 브라우저에서 디버깅하기✅ 2.1 Chrome 개발자 도구 활용하기 🖥️1. Vue 애플리케이션이 실행된 상태에서 개발자 도구(DevTools)를 열어야 합니다.Window..
[Vue]Navigation Guards를 활용한 middleware 구현
·
vue.js
📌 Nuxt에는 공식적인 middleware 개념이 있지만, Vue에서는 네비게이션 가드를 활용하여 비슷한 기능을 구현가능.📌 로그 기록, 인증(로그인 체크) 같은 공통 로직을 미들웨어로 만들어 관리하면 코드가 깔끔해지고 유지보수가 쉬워진다.1. Vue에서 미들웨어처럼 동작하는 라우트 가드Vue에서는 라우터 가드(Navigation Guards) 를 활용하면 Nuxt의 middleware처럼 동작하도록 만들 수 있다.적용 방식 설명사용 예시전역 미들웨어 (beforeEach)모든 페이지 전환 전에 실행로그인 체크, 로그 기록전역 완료 후 미들웨어 (afterEach)페이지 이동 후 실행페이지 타이틀 변경, 분석 툴 연동개별 라우트 미들웨어 (beforeEnter)특정 페이지에서만 실행관리자 페이지 접..
[Vue]라우터를 활용한 Layout 설정
·
vue.js
웹 애플리케이션을 개발할 때 페이지마다 공통적인 UI 구조(예: 헤더, 푸터, 사이드바)를 유지하려면 레이아웃(Layout) 개념이 필수적입니다. Vue에서는 여러 가지 방법으로 레이아웃을 적용할 수 있으며, 실무에서는 중첩 라우트(Nested Routes) 방식과 meta 속성을 활용하는 방식이 주로 사용됩니다.이번 글에서는 실무에서 가장 많이 쓰이는 Vue의 레이아웃 관리 방법을 작성해보겠습니다.1. 중첩 라우트(Nested Routes) 방식으로 레이아웃 적용하기중첩 라우트 방식은 각 레이아웃을 상위 라우트로 설정한 후, 하위 페이지를 해당 레이아웃 내부에서 렌더링하는 방법입니다. 이를 통해 모든 하위 페이지는 자연스럽게 공통 UI를 공유할 수 있습니다. ✅ App.vue 설정먼저, App.vue에..
[Vue]이미지 업로드 & 다운로드 구현하기
·
vue.js
Vue 3를 활용하여 이미지 파일을 업로드하고 다운로드하는 기능을 구현하는 방법을 소개합니다.Spring Boot를 사용한 서버 구축아래 포스트에서 확인하시면 됩니다.2025.02.14 - [Spring]파일 업로드 하기 [Spring]파일 업로드 하기웹 개발을 하다 보면 파일을 업로드해야 하는 경우가 많습니다.프로필 이미지, 첨부 파일, 문서 관리 등 파일 업로드 기능은 정말 자주 사용되죠.이번 글에서는 Spring Boot에서 파일을 업로드하고,danghunri.tistory.com  1. 프로젝트 개요이 프로젝트에서 구현할 기능은 다음과 같습니다.✅ 이미지 업로드: 사용자가 이미지를 선택 후 서버로 업로드✅ 이미지 조회: 사용자가 이미지 파일명을 입력하면 해당 이미지를 조회✅ 이미지 다운로드: 입력..
[Vue]v-model을 활용한 양방향 바인딩
·
vue.js
v-model은 Vue의 가장 강력한 기능 중 하나로, 양방향 데이터 바인딩을 간단하게 구현할 수 있습니다. Vue 3.4에서는 defineModel 매크로를 도입하며 기존 방식보다 훨씬 간결하고 직관적으로 v-model을 사용할 수 있게 되었습니다. 1. 기존 방식: props와 emit을 사용한 v-model 구현Vue 3.4 이전에는 v-model을 컴포넌트에서 구현하기 위해 props와 emit을 직접 사용해야 했습니다. 다음은 부모 컴포넌트에서 값을 전달받아 자식 컴포넌트에서 값을 업데이트하는 방법의 예제입니다. 기존 방식 예제 Child Input  부모 컴포넌트에서는 다음과 같이 사용할 수 있습니다. Parent: {{ count }} 위 방식은 동작은 잘하지만, 코드가 다소 장황합니..