분류 전체보기 274

VS Code에 추가된 신기능 - Sticky Scroll

이번에 작업용 컴퓨터를 변경하다보니 Sticky Scroll 없으면 이제 도저히 못쓰겠다 싶어서 설정을 다시하다 적어보는 글입니다. VSCode의 Sticky Scroll은 2022년 07월 업데이트부터 시작하여 08월부터 정식으로 추가된 기능으로, 뷰 포트 상단에 현재의 범위를 표시하여 줍니다. 예를들면... #1. 아래와 같이 코드가 길어지면 괄호를 제대로 닫은것인지 애매할 수 있는데... #2 설정으로 이동하여 Sticky Scroll를 검색한 후 해당 항목을 활성화 해 줍니다. #3. 뷰 포트 상단에 현재 범위가 표시가 됩니다. (스크롤을 내려보다가 예상과는 다르게 먼저 범위가 끝난다던가 하면 범위 설정에 오류가 있다는 것이겠지요) 범위 확인용 이외에도 해당 라인을 클릭해서 바로 이동하는 등 익숙..

배열에서 원하는 객체만 삭제하는 방법

배열에서 원하는 항목을 제거하고 싶은 경우가 꽤나 자주 발생하는데, 그와 관련된 이런저런 내용을 간략히 적어봅니다. 예제 샘플 users라는 배열에는 대충 아래와 같이 이름(userName), 나이(age)등 다양한 정보를 포함한 객체가 담겨져 있다. [ { "no": 1, "userName": "Terry", "age": 50, "gender": "male", "email": "atuny0@sohu.com", "userID": "atuny0", "birthDate": "2000-12-25", "image": "https://robohash.org/hicveldicta.png", "bloodType": "A−", "address": "1745 T Street Southeast", "city": "Wash..

Ionic Framework - reorder(재정렬)

Reorder reorder는 내부의 항목을 끌어다 놓아 해당 그룹 내에서 순서를 변경할 수 있도록 하는 구성 요소입니다. 최근 Ionic을 이용해서 개발을 하고있는데, 다른 언어 샘플 코드는 모르겠고, reorder 페이지의 Vue 샘플 코드를 그대로 사용하면 리스트를 변경할때마다 화면이 멈춰버리는 일이 발생하기에 추후에 또 쓸지 모르니 간단한 해결 방법을 기록해 봅니다. 샘플 코드 Ionic Framework - Reorder {{ item }} checkItems 외부에 따로 수정 같은 이벤트 버튼을 만들어 ion-reorder-group의 :disabled="false" 값을 토글하게 만들면 평소에는 이동을 막고 수정하고 싶을때만 이동할 수 있도록 지정할 수 있습니다. 결과 이런식으로 배열의 순서..

Vue - Vuex, Pinia 새로고침해도 상태 유지하기

Vuex나 Pinia 같은 상태 관리 라이브러리를 사용하면서 store의 데이터를 사용하고 있는 페이지에서 새로고침을 하게 되면, 데이터가 사라지게 되는데, 이러한 문제점을 쉽게 해결하여 상태를 유지할 수 있게 해주는 플러그인의 사용법을 간단히 적어봅니다. vuex를 사용하고 있다면 vuex-persistedstate를, Pinia를 사용하고 있다면 pinia-plugin-persistedstate을 예로 작성하였으니 필요한 부분을 참고하시면 됩니다. Vuex를 사용하고 있다면... 이곳을 vuex-persistedstate의 사용법을 설명하기 전에... vuex-persistedstate는 제작자가 더 이상 일상 업무 중에 vue를 사용하지 않게 되어, 공식적으로 더 이상 업데이트를 하지 않을 것이라고..

Vue - Pinia (Vue 상태관리 라이브러리)

Pinia? Pinia는 Vuex와 같은 상태 관리 라이브러리입니다. 얼마전 vuex 기본 사용법에 대한 글을 작성하였는데, 현재 Vue3를 지원하고 있는 Vuex는 버전 4입니다. 또한 Vue의 개발자인 Even You가 자신의 트위터에서 Pinia는 사실상 Vuex 5입니다! 라고 말하기도 했을 정도로 Pinia는 충분히 좋아졌고 안정적입니다. 달라진점은? (1) module을 store로 재구성 프로젝트가 커질수록 Vuex는 store를 모듈화 해서 여러개로 나누게 되는데, 이게 계속 중첩이 되고 타입스크립트나 다른 플러그인을 함께 사용하게 될수록 매우 귀찮아지는데, Pinia는 defineStore라는 함수를 이용하여 각각의 파일마다 별도의 store를 정의하여 module의 기능을 대신하고 있어..

Vue - Composition API 사용방법

1. Composition API를 사용하는 이유 프로젝트가 커지다 보면 어떠한 것을 수정하기 위해서 해당 항목을 찾을 때, 수십 가지의 Data 중에서 하나를 찾고, 이 Data가 어떤 methods에 영향을 받는지 또 수십 개의 methods 중에서 하나를 찾고, Computed에 포함이 되어 있지는 않는지 등 Ctrl + F 기능을 통해 여기저기 하나씩 검색하며 찾아야 하는 불편함이 생기게 되는데, 이럴 때 사용하기 좋은 것이 Composition API입니다. (기존의 사용 방법은 Options API라고 부릅니다) ※ 그냥 하나의 문법(사용방법)이라 보면 됩니다 2. Options API와 Composition API의 비교 아래는 동일한 내용을 기존 방식(Options API)으로 작성했을때와..

Vue - vuex 사용하는 방법

1. vuex를 사용하는 이유 프로젝트가 커질수록 다양한 컴포넌트에서 서로 연관있는 데이터를 주고받게 되는데, vue는 부모에게서 자식에게로 props로만 데이터를 전송하게 된다. 이러한 방식은 컴포넌트끼리의 관계가 복잡해질수록 데이터를 공유하기 매우 힘들어진다. vuex는 중앙 집중식 저장소 역할을 하며, 여러 컴포넌트에서 쓸 데이터를 보관하고, 언제든 데이터를 바로 가져다 쓸 수 있게 도와준다. 마냥 좋아보이는데 그럼 왜 처음부터 vuex를 쓰지 props를 쓰는것인가? vuex를 사용하게되면 데이터에 대한 접근은 쉬워지지만 우선 코드가 길고 복잡해진다. 그렇기에 개인 프로젝트정도의 작업이나 특정 컴포넌트에서만 사용되는 정도는 vuex없이 사용하는편이 더 간편해진다. 하지만 실제로 작업을 하게되면 v..

Vue - unsplash API를 활용한 이미지 검색 앱 만들어보기

이제 어느 정도 Vue의 기본에 대한 글은 대부분 작성했기에 종합편스럽게 뭐라도 하나 만들어 볼까 생각하고 있었습니다. (그럼에도 글로 적기 너무 길지 않은 걸로...) 예전에 이미지 검색 앱 만드는게 잠깐 유행했었는데, 다들 React로 만드는 글이었기에 그걸 Vue로 한번 만들어 봤습니다. 최종 구현 화면 샘플 이번 글에선 대충 아래와 같은것을 만들어 볼 것입니다. 1. unsplash 개발자 등록 Unsplash Developers 사이트로 이동하여 개발자 등록(회원가입)을 진행합니다. 회원 가입 완료 후 상단의 Your apps로 이동하여 New Application을 클릭하여 새로운 프로젝트를 등록합니다. Application 등록을 완료한 후 볼 수 있는 중앙에 위치한 Keys는 나중에 사용하..

Vue - 라이프사이클 훅(Lifecycle hooks)

1. Lifecycle 리액트 관련 글에선 생명주기 함수라고 많이 하던데 Vue에서는 생명주기라고 부르는 경우를 잘 못본거 같다. 어쨌건 이 라이프 사이클이 뭐냐면 인스턴스가 생성되고 소멸되기까지의 과정이 어쩌구 저쩌구 하는데, 그냥 컴포넌트가 화면에 나타나고 사라질때까지의 과정을 여러 단계로 세분화 해놓은거라고 생각하면 됩니다. 아래는 vue 공식 문서에서 볼수 있는 라이프사이클 다이어그램입니다. 2. 무엇때문에 알아야 하는가? 컴포넌트가 화면에 나타날때는 내부적으로 코드를 읽어 내용물을 생성한 후(create) 화면에 출력(mount)해 줍니다. 또한 데이터 값이 변한다던가(update) 다른페이지로 이동하게되어 컴포넌트가 삭제(unmount)될 수도 있습니다. 이러한 각각의 타이밍에 라이프 사이클 ..

Vue - computed, methods, watch 정리

언제나 그렇듯 개발자들 문서를 읽어보면 무진장 불친절하다. 뭔가 찾아보면 이것은 반응형(reactive) 종속성에 기반하여 캐시 된다던가, 종속성 관계를 선언적으로 만들었다 같은 그래서 종속성이 뭔데? 그래서 선언적으로 만들었다는 게 뭔데? 같은 처음 접하는 사람들을 전혀 배려하지 않는 글들이 싫어서 정리해보는 글. 1. data 값 담아놓는곳. 아래 예는 count라는 이름으로 4라는 값이 들어있음. data(){ return{ count: 4, } } 2. method 함수 담아놓는 곳. 함수 이름을 호출하면 내부에 적힌 명령어들이 실행됨. 아래 예는 plus()를 실행하면 count의 숫자가 1씩 증가. data(){ return{ count: 4, } }, methods: { plus() { th..

반응형