조아마시

쓸모 있는 상세페이지 만들기

웹개발/vuejs 26

[Vue] pinia 직관적인 Vue.js 상태 관리 라이브러리

Pinia는 Vue.js 3에서 사용되는 상태 관리 라이브러리입니다. 기존의 Vuex를 대체하거나 보완하여 더욱 간결하고 효율적인 상태 관리를 가능하게 해줍니다. Pinia는 Composition API를 기반으로 설계되어 Vue.js 3의 반응형 시스템과 잘 어울리며, TypeScript와의 통합도 뛰어납니다.왜 Pinia를 사용해야 할까요?간결한 API: Vuex에 비해 더 간결하고 직관적인 API를 제공하여 코드 작성이 쉽습니다.Composition API 기반: Composition API를 활용하여 코드 재사용성을 높이고 가독성을 향상시킵니다.TypeScript 지원: TypeScript와의 뛰어난 통합으로 안전하고 강력한 타입 시스템을 제공합니다.모듈화: 각 기능별로 Store를 분리하여 관리..

웹개발/vuejs 2024.08.07

[Vue] airbnb/lottie-web 사용하기

Airbnb Lottie-web 사용하기: 웹 애니메이션의 새로운 지평을 열다Lottie-web은 Airbnb에서 개발한 오픈 소스 프로젝트로, After Effects에서 제작된 애니메이션을 웹, Android, iOS, React Native 등 다양한 플랫폼에서 손쉽게 재생할 수 있도록 지원합니다.왜 Lottie-web을 사용해야 할까요?가볍고 빠른 성능: 기존 GIF 이미지나 동영상보다 훨씬 작은 용량으로 높은 품질의 애니메이션을 구현하여 웹 페이지 로딩 속도를 향상시킵니다.커스터마이징: JSON 파일을 직접 수정하여 애니메이션의 속도, 색상, 크기 등을 자유롭게 변경할 수 있습니다.다양한 플랫폼 지원: 웹뿐만 아니라 모바일 앱에서도 동일한 애니메이션을 사용할 수 있어 개발 효율성을 높입니다.오픈..

웹개발/vuejs 2024.08.07

[Vue] nextTick 사용하기

nextTick이란?Vue 3에서 nextTick 메서드는 Vue가 DOM 업데이트를 완료한 후에 특정 코드를 실행하도록 하는 유용한 함수입니다. 즉, Vue가 데이터 변경에 따라 DOM을 렌더링한 후, 그 결과를 바탕으로 추가적인 작업을 수행하고 싶을 때 사용합니다.왜 nextTick이 필요한가요?동기적 DOM 업데이트: Vue는 데이터 변경이 감지되면 DOM을 비동기적으로 업데이트합니다. 하지만 DOM 업데이트가 완료되기 전에 DOM 요소에 접근하려고 하면, 아직 업데이트되지 않은 값을 참조하게 되어 예상치 못한 결과가 발생할 수 있습니다.DOM 조작: DOM을 직접 조작하거나 라이브러리를 사용하여 DOM을 수정하는 경우, Vue가 DOM을 업데이트한 후에 작업을 수행해야 변경 사항이 반영됩니다.주의..

웹개발/vuejs 2024.08.01

[Vue] Vue.js 프로젝트에 효율적인 개발을 위한 필수 도구

효율적인 개발을 위한 필수 도구Vue.js 프로젝트를 개발하다 보면, 핵심 기능 외에도 다양한 기능을 추가하기 위해 외부 라이브러리를 활용하게 됩니다. 이번 글에서는 Vue.js 프로젝트에서 자주 사용되는 유용한 라이브러리들을 소개하고, 각 라이브러리의 주요 기능과 활용 사례를 간략하게 설명해 드리겠습니다.Vuetify는 Vue.js를 위한 강력하고 아름다운 UI 라이브러리입니다. Google의 Material Design을 기반으로 만들어져 일관된 디자인 시스템을 제공하며, 다양한 컴포넌트와 기능을 통해 빠르고 효율적으로 Vue.js 애플리케이션의 UI를 구축할 수 있도록 돕습니다. Axios는 자바스크립트에서 서버와 통신하기 위해 사용되는 HTTP 클라이언트 라이브러리입니다. 특히 Vue.js와 같은..

웹개발/vuejs 2024.08.01

[Vue] vue3-lottie 사용하기

Vue3-Lottie는 Vue 3 프로젝트에서 Lottie 애니메이션을 쉽게 사용할 수 있도록 도와주는 컴포넌트 라이브러리입니다. Lottie는 Adobe After Effects에서 제작된 애니메이션을 JSON 형식으로 변환하여 웹에서 가볍고 빠르게 재생할 수 있도록 해주는 기술입니다. Vue3-Lottie는 이러한 Lottie 애니메이션을 Vue 3 컴포넌트로 감싸, 개발자가 Vue 컴포넌트처럼 간편하게 애니메이션을 관리하고 제어할 수 있도록 지원합니다.왜 Vue3-Lottie를 사용해야 할까요?간편한 통합: Vue 3 프로젝트에 Lottie 애니메이션을 손쉽게 추가하고 관리할 수 있습니다.다양한 기능 지원: Lottie 애니메이션의 모든 기능을 지원하며, 추가적인 옵션을 통해 애니메이션을 커스터마이..

웹개발/vuejs 2024.08.01

[Vue] Vue3에서 onBeforeMount() 훅 사용 가이드

onBeforeMount()는 Vue 3에서 컴포넌트가 DOM에 마운트되기 직전에 호출되는 생명주기 훅입니다. 컴포넌트 렌더링을 위한 최종 준비 단계 역할을 수행하며, 다음과 같은 다양한 작업에 활용될 수 있습니다.1. 데이터 초기화:컴포넌트 마운트 이전에 필요한 데이터를 초기화하는 데 사용됩니다.API 호출, 변수 설정, 상태 관리 등을 수행할 수 있습니다.주의 사항: mounted 훅 이후에 데이터를 변경하면 렌더링되지 않으므로 주의해야 합니다.2. DOM 요소 조작:마운트되기 직전에 DOM 요소를 조작해야 하는 경우 사용됩니다.스타일 설정, 요소 추가/삭제, 이벤트 리스너 등록 등을 수행할 수 있습니다.주의 사항: 직접적인 DOM 조작은 성능 저하를 초래할 수 있으므로 신중하게 사용해야 합니다.3...

웹개발/vuejs 2024.07.30

[Vue] Vue3에서 onMounted() 훅 사용 가이드

onMounted()는 Vue 3에서 컴포넌트가 DOM에 완전히 마운트되고 렌더링된 후 호출되는 생명주기 훅입니다. 컴포넌트가 사용자와 상호 작용하기 준비된 시점이며, 다음과 같은 다양한 작업에 활용될 수 있습니다.1. DOM 요소 조작:마운트된 DOM 요소에 대한 조작이 필요한 경우 사용됩니다.스타일 동적 적용, 요소 크기 조정, 애니메이션 실행 등을 수행할 수 있습니다.주의 사항: 과도한 DOM 조작은 성능 저하를 초래할 수 있으므로 필요한 작업만 수행해야 합니다.2. 이벤트 리스너 등록:컴포넌트 내 DOM 요소에 이벤트 리스너를 등록하는 데 사용됩니다.클릭, 마우스 오버, 스크롤 등 사용자 상호 작용을 감지하고 처리할 수 있습니다.주의 사항: 이벤트 리스너는 메모리 누수를 유발할 수 있으므로 사용하..

웹개발/vuejs 2024.07.30

[Vue] Vue3에서 onBeforeUpdate() 훅 사용 가이드

onBeforeUpdate()는 Vue 3에서 컴포넌트의 반응형 데이터가 업데이트되고 DOM을 다시 렌더링하기 직전에 호출되는 생명주기 훅입니다. 컴포넌트 상태 변화에 따른 DOM 업데이트를 준비하는 데 사용되며, 다음과 같은 다양한 작업에 활용될 수 있습니다.1. 데이터 변화 감지 및 처리:컴포넌트의 반응형 데이터가 변경된 부분을 감지하고 처리하는 데 사용됩니다.변경된 데이터에 따라 계산된 속성을 업데이트하거나, 로직을 실행할 수 있습니다.주의 사항: 직접적인 DOM 조작은 피하고, onUpdated 훅에서 수행하는 것이 좋습니다.2. 조건부 렌더링 로직 구현:반응형 데이터 값에 따라 렌더링될 DOM 요소를 조건적으로 제어하는 데 사용됩니다.v-if, v-else, v-for와 같은 지시문과 함께 사용..

웹개발/vuejs 2024.07.30

[Vue] Vue3에서 slot 사용하기

Slot은 부모 컴포넌트에서 자식 컴포넌트로 콘텐츠를 전달하는 방법입니다. 부모 컴포넌트는 Slot을 정의하고, 자식 컴포넌트는 이 Slot에 콘텐츠를 채워 넣을 수 있습니다. 이를 통해 컴포넌트를 더욱 유연하게 만들고, 재사용성을 높일 수 있습니다.Composition API에서 Slot 사용하기Composition API에서 Slot을 사용하는 방법은 다음과 같습니다.template에서 Slot 정의:template 옵션에서 태그를 사용하여 Slot을 정의합니다.Slot에 이름을 지정하여 다양한 Slot을 관리할 수 있습니다.setup 함수에서 Slot 전달:setup 함수에서 Slot을 props처럼 자식 컴포넌트로 전달합니다.withDefaults 함수를 사용하여 기본값을 설정할 수 있습니다.실..

웹개발/vuejs 2024.07.30

[Vue] Vue3에서 사용자 훅 만들기

Vue 3의 Composition API를 이용하면 재사용 가능한 로직을 훅(hook) 형태로 만들어 컴포넌트 간에 공유할 수 있습니다. 이는 코드 재사용성을 높이고, 컴포넌트를 더욱 모듈화하여 관리하기 쉽게 만듭니다.왜 사용자 훅을 만들어야 할까요?코드 재사용성 증가: 여러 컴포넌트에서 공통적으로 사용되는 로직을 한 번만 작성하여 재사용할 수 있습니다.컴포넌트 복잡도 감소: 컴포넌트 내 로직을 작은 단위의 훅으로 분리하여 관리하기 쉬워집니다.테스트 용이성 향상: 각 훅을 독립적으로 테스트할 수 있어 컴포넌트 전체를 테스트하는 것보다 효율적입니다.더 나은 코드 가독성: 복잡한 로직을 작은 단위의 함수로 분리하여 코드를 더 명확하게 작성할 수 있습니다.사용자 훅 만드는 방법새로운 파일 생성: hooks 폴..

웹개발/vuejs 2024.07.30

[Vue] VeeValidate 사용 가이드

VeeValidate는 Vue.js 애플리케이션에서 폼 유효성 검사를 쉽고 간편하게 수행할 수 있도록 도와주는 강력한 라이브러리입니다. Composition API와 결합하여 더욱 유연하고 재사용 가능한 폼 유효성 검사 로직을 구축할 수 있습니다.설치하기npm install vee-validate 기본 사용법1. Vue 프로젝트에 추가하기import { createApp } from 'vue';import { Form, Field, ErrorMessage } from 'vee-validate';import { required, email } from '@vee-validate/rules';createApp({ // ...}).mount('#app');2. 폼 구성하기 Form 컴포넌..

웹개발/vuejs 2024.07.30

[Vue] Vue3에서 onUpdated() 훅 사용 가이드

onUpdated()는 Vue 3에서 컴포넌트의 반응형 데이터가 업데이트되고 DOM이 다시 렌더링된 후 호출되는 생명주기 훅입니다. 컴포넌트가 DOM에 반영된 최신 상태를 기반으로 로직을 실행하거나 작업을 수행하는 데 사용됩니다. 다음과 같은 다양한 활용 사례가 있습니다.1. DOM 조작:컴포넌트의 반응형 데이터 변화에 따라 DOM 요소를 조작하는 데 사용됩니다.스타일 변경, 요소 추가/삭제, 애니메이션 실행 등을 수행할 수 있습니다.주의 사항: 과도한 DOM 조작은 성능 저하를 초래할 수 있으므로 필요한 작업만 수행해야 합니다.2. 이벤트 리스너 등록/제거:반응형 데이터 변화에 따라 이벤트 리스너를 동적으로 등록하거나 제거하는 데 사용됩니다.특정 조건 충족 시 이벤트 처리 로직을 실행하거나, 사용하지 ..

웹개발/vuejs 2024.07.29

[Vue] Vue3에서 onBeforeUnmount() 훅 사용 가이드

onBeforeUnmount()는 Vue 3에서 컴포넌트가 DOM에서 언마운트되기 직전에 호출되는 생명주기 훅입니다. 컴포넌트가 제거되기 전에 마무리 작업을 수행하거나, 리소스 해제를 위한 로직을 실행하는 데 사용됩니다. 다음과 같은 다양한 활용 사례가 있습니다.1. 이벤트 리스너 제거:컴포넌트에 등록된 이벤트 리스너를 제거하여 메모리 누수를 방지하는 데 사용됩니다.직접 등록한 이벤트 리스너뿐만 아니라, 라이브러리 또는 타사 코드에서 등록된 리스너도 제거해야 합니다.주의 사항: 모든 이벤트 리스너가 제거되었는지 확인하는 것이 중요합니다.2. 타이머 해제:컴포넌트 내에서 사용되는 타이머를 해제하여 성능 저하를 방지하는 데 사용됩니다.setInterval, setTimeout과 같은 함수로 생성된 타이머를 ..

웹개발/vuejs 2024.07.29

[Vue] Vue3에서 onUnmounted() 훅 사용 가이드

onUnmounted()는 Vue 3에서 컴포넌트가 DOM에서 완전히 언마운트된 후 호출되는 생명주기 훅입니다. 컴포넌트가 제거되었으며 더 이상 사용자와 상호 작용하지 않음을 의미하며, 마무리 작업이나 분석 로직을 수행하는 데 사용됩니다. 다음과 같은 다양한 활용 사례가 있습니다.1. 사용 분석 기록:컴포넌트 사용 기간, 사용자 이벤트, 성능 데이터 등을 기록하여 분석에 활용합니다.사용 패턴 파악, 사용자 만족도 평가, 애플리케이션 개선에 도움이 되는 정보를 수집합니다.주의 사항: 개인정보 침해 문제에 유의하고, 사용자 동의를 얻은 후에만 기록해야 합니다.2. 로그 기록:컴포넌트 언마운트 시점의 에러, 경고 메시지, 디버깅 정보 등을 로그로 기록합니다.문제 해결, 성능 최적화, 코드 개선에 도움이 되는 ..

웹개발/vuejs 2024.07.29

[Vue] Vue3에서 ref와 reactive 알아보기

Vue3에서 ref와 reactive는 모두 반응형 데이터를 만들 수 있도록 도와주는 유용한 도구이지만, 각각의 특징과 사용법에 차이점이 있습니다.1. 데이터 타입:ref: 기본 자료형 (String, Number, Boolean) 및 객체 모두 사용 가능reactive: 객체만 사용 가능 (Object, Array, Map, Set 포함)2. 접근 방식:ref: .value 접근자를 사용하여 값에 접근 및 변경reactive: 객체 속성처럼 직접 접근 및 변경 가능const count = ref(0)count.value = 13. 객체 재할당:ref: 객체를 재할당하면 반응성 유지const obj = ref({})obj.value = { newProperty: 'value' }reactive: 객체를 ..

웹개발/vuejs 2024.07.29

[Vue] Vue 3에서 계산된 속성(computed) 사용하기

Vue 3의 computed는 데이터 속성에 의존하는 값을 계산하고 캐싱하는 데 사용되는 강력한 도구입니다. 템플릿에서 간결하게 표현식을 사용하여 값을 참조할 수 있도록 하며, 데이터 변경에 대한 반응성도 제공합니다. 이름: {{ fullName }} 나이: {{ age }} 위 코드에서 fullName은 firstName과 lastName 속성에 의존하는 계산된 속성입니다. 템플릿에서 {{ fullName }}으로 간단하게 참조할 수 있으며, firstName 또는 lastName 값이 변경될 때마다 자동으로 다시 계산됩니다.주요 특징:캐싱: 계산된 속성은 의존하는 데이터가 변경되지 않는 한 다시 계산되지 않습니다. 이는 성능 향상에 도움이 됩니다.반응성: 의존하는 데이터가 변경되면 자동으로..

웹개발/vuejs 2024.07.29

[Vue] Vue에서 CryptoJS 사용하기

Vue.js에서 CryptoJS를 사용하여 다양한 암호화 작업을 수행할 수 있습니다. CryptoJS를 사용하기 전에 NPM 또는 Yarn을 사용하여 설치해야 합니다.npm install crypto-js설치 후 다음과 같은 방법으로 Vue 컴포넌트에서 CryptoJS를 사용할 수 있습니다.1. CryptoJS 가져오기:import CryptoJS from 'crypto-js';2. 암호화 및 복호화:const message = '안녕하세요, CryptoJS!';const key = 'mySecretKey';// 암호화const encrypted = CryptoJS.AES.encrypt(message, key).toString();console.log('암호화된 문자열:', encrypted);// 복호..

웹개발/vuejs 2024.07.29

[Vue] Vue에서 여러 이미지 파일 첨부 및 Base64로 img 태그에 반영하는 방법

Vue.js에서 여러 이미지 파일을 첨부하고 Base64 문자열로 변환하여 img 태그에 동적으로 표시하는 방법을 단계별로 안내해 드리겠습니다. - 선택된 파일 유형 검증- 이미지 개수 제한 검사 1. HTML 템플릿 설정: 2. 스크립트 설정:import { ref } from 'vue';export default { setup() { const MAX_IMAGES = 10; // 최대 허용 이미지 수 const base64Images = ref([]); // Base64 이미지 데이터를 저장할 배열 const handleFileChange = (event) => { const files = event.target.files..

웹개발/vuejs 2024.07.29

[Vue] Vue3에서 watch와 watchEffect 비교 알아보기

Vue3에서 reactive 데이터 변화를 감지하고 반응하는 데 사용되는 두 가지 주요 방법인 watch와 watchEffect에 대한 차이점을 살펴보겠습니다.1. 기본 동작:watch: 특정 reactive 값을 명시적으로 감시하고 해당 값이 변경될 때 콜백 함수를 실행합니다. 이전 값과 현재 값을 모두 콜백 함수에 제공합니다.watchEffect: 콜백 함수 내부에서 사용되는 모든 reactive 의존성을 자동으로 추적합니다. 명시적인 값 지정 없이 변화에 반응합니다. 콜백 함수에는 현재 값만 제공됩니다.2. 사용 시나리오:watch:이전 값과 현재 값을 모두 사용하여 계산해야 하는 경우특정 reactive 값에만 반응해야 하는 경우코드 간 명확성을 위해 의도적으로 값을 지정하고 싶은 경우watchE..

웹개발/vuejs 2024.07.22

[Vue] Vue3 defineExpose 사용 가이드

defineExpose는 Vue 3에서 자식 컴포넌트의 API를 부모 컴포넌트에 직접적으로 공개하는 강력한 기능입니다. 기존의 props, emit 방식보다 더 효율적이고 유연한 데이터 전달 방식을 제공하며, 컴포넌트 간의 코드 재사용성을 높여줍니다. 1. defineExpose 기본 원리defineExpose는 자식 컴포넌트의 setup() 함수 내에서 사용됩니다. 객체를 인수로 받아, 공개하고 싶은 컴포넌트 내부 API를 키-값 쌍 형태로 정의합니다.자식 컴포넌트 (ChildComponent.vue)import { defineExpose } from 'vue';export default { setup() { const data = ref('초기 데이터'); const addData = (..

웹개발/vuejs 2024.07.20
728x90