FrontEnd 57

[RN] 🚫에러 일지 - SDK location not found. Define a valid SDK location with an ANDROID_HOME environment variable or by setting the sdk.

말 그대로 SDK 경로를 찾을 수 없어서 발생하며, 주로 맥 -> 윈도, 윈도 -> 맥으로 프로젝트를 옮길 때 자주 발생하는 에러입니다. 안드로이드 스튜디오에 내 프로젝트 디렉터리로 가셔서 local.properties 파일을 한번 찾아보세요! 존재하지 않거나 경로가 잘못되어있을 가능성이 큽니다. 경로가 잘못되어 있다면 내 PC에 맞게 변경해주시면 됩니다 보통 윈도의 경우 c:\Users\'사용자 이름'\AppData\Local\android\adk 그리고 맥의 경우 /Users/'사용자 이름'/Library/Android/sdk sdk.dir=/Users/luna/Library/Android/sdk 이런 식으로 변경해주시면 됩니다.

[Vue-Cal] Vue.js 캘린더 라이브러리

https://antoniandre.github.io/vue-cal/#installation 설치 $ npm i vue-cal 사용 // scss/app.scss @import 'vue-cal/dist/vuecal.css' {{ split.label }} 연간/월간/주간 탭 숨기기해당 배열에 각각의 탭 이름 넣어주기 :disable-views="['years', 'year', 'month', 'week']" 시간 간격 설정하기 :time-step="30" // 시간 간격 (30분 간격) :time-from="9 * 60" (9시 부터) :time-to="19 * 60" (19시 까지) 출력 날짜 설정하기 selected-date="2018-11-19" 날짜를 여러 개의 컬럼으로 쪼개기 :split-day..

FrontEnd/Vue 2023.07.03

[Vue] requestAnimationFrame

requestAnimationFrame() 는 브라우저에서 작동하는 애니메이션을 알려주고 다음 리페인트 진행 전에 해당 애니메이션을 업데이트하는 함수를 호출하게 합니다. 이 메서드는 리페인트 이전에 실행할 콜백을 인자로 받습니다. 리페인트 ? 리페인트란 리플로우 과정이 끝나고 재생성된 레이아웃 트리(렌더 트리)를 다시 레이어에 그리는 작업을 말합니다. 여기서 리플로우는 DOM 노드의 레이아웃 변경 시 영향을 받는 모든 노드의 수치를 다시 계산하여 레이아웃 트리(렌더 트리)를 재생성하는 작업을 의미합니다. css에서 width, height 같은 레이아웃에 영향을 주는 속성을 말합니다. 리페인트를 발생하게 하는 속성은 css에서 시각적으로 보여지는 모든 속성이며 이 외에도 레이아웃에 영향을 주는 것은 아니..

FrontEnd/Vue 2023.04.25

[Vue-Query] persistQueryClient

https://tanstack.com/query/v4/docs/vue/examples/vue/persister Vue Query Persister는 나중에 사용할 수 있도록 쿼리 클라이언트를 저장하는 persister와 상호작용하기 위한 유틸리티 집합입니다. 다양한 persister를 사용하여 클라이언트 및 캐시를 다양한 스토리지에 저장할 수 있습니다. 여기서 우리는 indexedDB에 저장했습니다. indexedDB는 same-origin policy를 따르기 때문에 다른 도메인에서 프로젝트 도메인으로 접근할 수 없습니다. 여기에 HTTP 프로토콜을 적용한 도메인과 로컬호스트에서만 접속이 가능하도록 하여 다른 도메인으로 접속 시 access denied하여 보안을 강화하였습니다. 다음은 persistQ..

FrontEnd/Vue 2023.04.24

[Swagger Codegen] swagger-typescript-api

백엔드와 프론트엔드 협업 시에 백엔드 API 제작이 완료되면 보통 REST API의 경우 swagger를 통해 API Docs를 작성하게 되는데 이 때에 백엔드에서 작성된 API 타입을 그대로 가져와 프론트 API 통신 코드 작성 시 타입을 지정해 줄 수 있는 도구입니다. https://www.npmjs.com/package/swagger-typescript-api // package.json { ... "scripts": { ... "generate": "npx swagger-typescript-api -p http://petstore.swagger.io/v2/swagger.json -o ./src/common/interfaces -n types.d.ts " }, } 스크립트에 해당 코드를 작성하고 n..

FrontEnd 2023.04.20

[Vue-Query] useMutation

첫 페이지에서 간단하게 mutation을 사용하는 방법에 대해서 설명했었습니다. https://metadataplanning.atlassian.net/wiki/spaces/data/pages/105447542 먼저 첫 페이지에서 설명한 것 처럼 axios apis(axios를 통해 백엔드에 put, post, patch, delete 요청을 보내는 함수)가 작성되었다는 전제로 설명드립니다. 데이터 내보내기 import { useMuataion } from '@tanstack/vue-query' const { mutate } = useMutation(createTodo); 기본적으로 데이터를 내보내기 위해서는 위와 같이 작성합니다. 이후 작성된 값을 통해 Todo를 만들려면 onClickCreate 함수가..

FrontEnd/Vue 2023.04.20

[Vue-Query] useQuery

useQuery Docshttps://tanstack.com/query/v4/docs/vue/reference/useQuery 데이터 조회 상태 Promise 기반 메서드와 함께 쿼리를 사용하여 서버에서 데이터를 가져올 수 있습니다. 메서드가 서버의 데이터를 수정하는 경우 mutation을 사용하는 것이 좋습니다. import { useQuery } from '@tanstack/vue-query' // fetchTodoList가 todoList를 조회하는 api 입니다. const { data, isLoading, isError, isSuccess, error } = useQuery({ queryKey: ['todos'], queryFn: fetchTodoList }) 쿼리 함수는 Promise를 반환하..

FrontEnd/Vue 2023.04.20

[Vue-Query] @tanstack/vue-query

일반적으로 프로젝트를 진행하면서 관리해야하는 상태(state)는 총 세 가지가 있습니다. Local State: 컴포넌트 안에서만 사용되는 상태 Global State: 전역 스토어에 정의되어 프로젝트 어디에서나 접근할 수 있는 상태 Server State: 서버로부터 받아오는 상태 기존 Vuex에서는 전역 상태와 서버 상태를 전부 포함해서 관리하는 방식으로 프로그래밍을 했습니다. 하지만, 전역 상태 관리 라이브러리에서 비동기 로직을 제거하고 서버 상태 관리 라이브러리에서 이를 관리하여 각각을 분리하면 프로젝트 로직을 이해하기도 좋고 스토어를 간단하게 관리할 수 있습니다. 설치 npm i @tanstack/vue-query 사용 // main.ts import { VueQueryPlugin } from ..

FrontEnd/Vue 2023.04.20

[Vue3] v-model props

props는 read-only reactive object입니다. 즉, 조회만 가능한 반응형 객체이며, computed 같은 반응성 체크는 가능하지만 props를 직접 수정하는 것은 불가능합니다. v-model을 props로 사용해주기 위해서 vue3는 내부적으로 v-model의 양방향 바인딩을 단방향 바인딩으로 캐스팅해줍니다. 혹은 아래와 같이 computed를 사용해 직접 반응형 객체를 만들어 v-model을 바인딩 할 수도 있습니다. 참고: https://vuejs.org/guide/components/v-model.html

FrontEnd/Vue 2023.04.20