일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- csr
- Vite
- SSR
- Recoil
- Git
- NextJS
- 원시값
- github
- 이벤트루프
- 소셜 로그인
- 최재영
- 절대경로?
- FormData
- 카카오 로그인
- 멋쟁이 사자처럼 in CAU
- useContext
- webpack
- 11기
- React
- nodejs
- 객체값
- Module
- 신진 디자이너
- Front-End
- 동기/비동기
- slack
- JS
- 프론트엔드
- TypeScript
- FileReader
- Today
- Total
목록React (12)
REturn 0;
프로젝트 소개Arti는 신진 디자이너들의 일러스트를 투표, 해당 투표 결과를 통하여 옷을 직접 제작하고 펀딩까지 하는 것을 목표로 하는 웹서비스프로젝트 주제신진 디자이너 및 브랜드 홍보 플랫폼프로젝트명Arti프로젝트 제작 기간2023.10.04 ~ 2023.12.05프로젝트 구현 기능https://zza-lng.notion.site/Arti-cb288edfea4849608f06736a52845398기술 스택 역할종류FrameworkProgramming LanguageStylingState ManagementData FetchingFormatting Package ManagerVersion Control 1차 제작에서는 React+TypeScript로 개발을 시작했다. 타입스크립트를 모르는 상태에서 시작..
2023년 7월 26 ~ 8월 26일까지, 이 기간동안 멋쟁이 사자처럼 프론트엔드 파트에서 활동하며, 교환학생 매칭 서비스 "오리챗(All-It-Chat)"의 프론트엔드 개발자로 전체 해커톤에 참가하였다. 개발을 시작하고 참여한 첫 프로젝트로, 2달간 공부한 React를 잘 활용할 수 있을지에 대한 걱정을 안고 시작했었다.| 프로젝트에서 구현한 기능https://zza-lng.notion.site/All-It-Chat-c6e7240f004c456fb0bf5ea2a0785d05?pvs=4 오리챗(All-It-Chat) | Notion기술 스택zza-lng.notion.site | 프로젝트에서 만족했고, 앞으로 지속하고 싶은 부분팀 분위기가 너무 좋았다. 모두가 열심히 하고, 서로가 열심히 하는 모습을 보며..
대한민국의 98%는 카카오톡을 사용하고 있다. 그래서인지 현재 대부분의 서비스에서 소셜로그인, 그 중에서도 카카오 로그인을 이용하여 서비스를 사용 할 수 있도록 하고있다. 내 기억에도 서비스에서 로그인이 필요할 때, 카카오 로그인을 이용해서 로그인 한 경험이 많았었다. 그래서~ 이번 프로젝트에서 소셜 로그인을 맡아서 진행하기로 했다. 이번 프로젝트는 프론트와 백엔드가 협업하여 프론트에서 로그인을 요청하여 인가코드를 받아와서 백엔드로 넘겨주면 인가코드를 이용해 카카오 서버에서 토큰을 받아와 얻은 정보를 이용해 자체 jwt 토큰을 제작해서 프론트에서 사용자 정보를 받아올 것이기 때문에 REST API를 사용했다. Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카..
1. React 프로젝트 생성하기 기존에는 터미널에 yarn create react-app Lucy-Arti(프로젝트명)을 입력하여 프로젝트를 생성했다. 프로젝트를 생성하는데 약 1분 정도의 시간이 걸린다. 지루할 정도로 서버 구동 시간이 길고 코드가 길어질수록 코드 갱신 시간 또한 증가하는 페인포인트가 있었다. Vite를 이용하면 생성하는 시간도 단축되고 코드 갱신 시간도 줄어든다. 왜 Vite를 이용하면 빠른지는 https://ko.vitejs.dev/guide/why.html 참고 Vite로 React + TypeScript 프로젝트를 생성하려면 터미널에 yarn create vite Lucy-Arti --template react-ts를 입력한다. 진짜 3초만에 생성된다. 2. React 프로젝트..
import catUrl from "./images/cat.png" // src 폴더 하위의 이미지 경로 import function Thumbnail() { return ; } 보통은 위와 같은 코드로 이미지파일 링크를 통해 import하여 변수에 저장하고 src안에 해당 변수를 링크로 넣는 방식으로 이미지 파일을 불러와서 사용한다. 하지만 이번 프로젝트에 들어가는 이미지가 너무 많아서 매번 import하기가 힘들어 방법을 찾아보았다. 모든 이미지파일을 React 프로젝트 생성하면 자동생성되는 public 폴더 내에 img 폴더를 만들어서 그 안에 이미지 파일을 저장하면 {isMentor ? ( ) : ( )} 이런식으로 ../../로 상위 폴더로 찾으러 갈 필요없이 /img/~~~.png만으로 바로 ..
import { useEffect } from "react"; import { useLocation } from "react-router-dom"; // 페이지 이동 시 스크롤을 맨 위로 export default function ScrollToTop() { const { pathname } = useLocation(); useEffect(() => { window.scrollTo(0, 0); }, [pathname]); return null; } 스크롤을 맨 밑으로 내리고 다른 컴포넌트가 렌더링 되어도 스크롤이 맨 아래인 상태에서 렌더링된다. 위 코드는 새로고침이나 새로운 컴포넌트가 렌더링 됐을 때, 스크롤을 맨 위로 올려주는 함수이다. import ScrollToTop from "./component..
import React, { useState } from "react"; import styled from "styled-components"; const StarRate = ({ onChange }) => { const [rate, setRate] = useState(0); const handleStarClick = (select) => { setRate(select); onChange(select); }; return ( {[1, 2, 3, 4, 5].map((star) => ( ★ ))} ); }; export default StarRate; const StarContainer = styled.div` display: inline-block; `; const Star = styled.span` fo..
import { useState } from "react"; export const useForm = () => { const [value, setValue] = useState(""); const onChange = (e) => { setValue(e.target.value); }; return [value, onChange]; }; 1. useForm() 내장된 useState, useEffect와 같은 hook을 커스텀하여 재사용성을 높이기 위해 사용 2. onChange() 입력된 값을 저장해야되는 input이나 textarea에 onChange함수로 넣어서 입력값의 변경이 이루어질 때마다 함수 실행 입력 요소의 현재값을 매번 value에 저장하는것 3. return [ value, onChang..