일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Project
- javascript
- CSS
- block
- STYLE
- terminal
- 선언
- 프론트엔드스쿨
- 선택자
- object
- 조건문
- display
- 멋쟁이사자처럼
- array
- Absolute
- boolean
- function
- 변수
- http
- js
- 리액트
- API
- Inline
- True
- react
- LIKELION
- ubuntu
- HTML
- position
- false
- Today
- Total
목록react (8)
Jeden Tag, aufrichtig und lustig.
프로젝트를 진행 할 때 form작업을 자주 하게 된다. CDN을 활용해서 리액트에서 폼을 만들 때 유용한 정보를 아래에 정리해보았다. Form submit 사용자가 폼을 제출 할 때 특정 사이트(ex.여기어때)로 연결하여 검색값을 받아 올 수 있게 하려면 input의 name 프로퍼티를 활용 할 수 있다. input에 name 속성을 활용 할 때는 key를 설정해야한다. 설정하는 key 이름은 폼을 제출(submit) 할 때 실행되는 action 주소의 쿼리스트링에 따라 달라진다. 아래와 같은 경우는 물음표('?') 뒤 쿼리스트링이 'keyword'이기 때문에 input name프로퍼티의 value값을 'keyword'로 설정하면 된다. 이렇게 하면 쿼리스트링의 key값으로 keyword가 지정되고 va..
1. 발생 이슈 새로운 블록이 추가되는 기능을 구현하던 도중 컴포넌트의 key값과 관련하여 문제가 발생했다. 블록 추가 버튼을 눌렀을 때 기대했던 것은 한개의 블록이 추가되는 것이었는데, 실제로는 동일한 idx값을 가진 두 개, 세 개, 때로는 네 개의 다수의 블록이 동시에 추가되는 현상이 발생했다. 빠르게 버튼을 연타하지도 않았기 때문에 블록의 상태 관리와 추가되는 새 블록의 상태관리 로직을 살펴보고 콘솔로도 확인을 해보며 디버깅을 했다. 2. 문제 이유 블록이 렌더링 될 때마다 key값이 새로 할당 되는 로직이 문제였다. 리액트에서는 key라는 속성을 활용해서 자식 컴포넌트들을 유니크하게 식별한다. 그렇기 때문에 렌더링할 때마다 모든 블록 컴포넌트의 key 값이 변경 되면 리액트가 올바르게 컴포넌트를..

1. 프로젝트를 하게 된 배경 리액트를 공부하는 용도로 youtube api를 활용해서 youtube를 구현해보았다. 다른 작업과 병행하다보니 기획부터 배포까지의 총 작업기간은 6일정도 소요되었다. 2. 배운 점 및 느낀 점 이번 프로젝트를 통해 새롭게 배우고 경험한 것은 크게 6가지다. youtube api 활용 mock 데이터 생성 및 활용 React에서의 테일윈드 CSS 적용 폴더구조와 url 구조 기획 MVP 형태 개발 .env 활용 프로젝트에서는 아래의 4가지 api를 활용하였다. 인기 동영상 데이터 검색 키워드에 따른 데이터 연관된 동영상 데이터 채널 데이터 일목요연하게 api가 정리 되어 있어서 필요한 api를 쉽게 찾을 수 있고, 필요한 데이터 수도 간편하게 지정할 수 있다. 다만 불편한 ..

1. 개념 페이지네이션은 페이지를 이동하고 싶을 때 사용하는 것이다. 최근에 페이지네이션을 리액트로 구현해봤다. 구현해보면서 사용한 로직을 정리해보았다. 2. 적용 코드 아래 Wiki 컴포넌트는 페이지네이션과 페이지네이션을 적용할 글 목록 리스트를 리턴해주는 컴포넌트다. const Wiki = () => { const [wikiList, setWikiList] = useState(""); const [limit, setLimit] = useState(5); const [page, setPage] = useState(1); const offset = (page - 1) * limit; const getWiki = async () => { const res = await getWikiAxios(); setW..

기존에 진행한 프로젝트의 성능을 개선 할 수 있는 방법을 찾는도중 디바운싱 개념을 알게되었다. 나중에도 유용하게 사용할 수 있을 것 같아 정리해보았다. 1. 개념 및 사용 이유 디바운싱은 연속적으로 함수 실행 요청을 하는 경우 가장 마지막 요청만 수행하는 것을 의미한다. 디바운싱은 연속적으로 함수를 실행하는 것은 서버에 부담을 줄 수 있기 때문에, 이 부담을 경감하기 위해 사용 될 수 있다. 2. 적용 예시 아래 코드는 계정을 검색 할 수 있게 만들어주는 코드다. useEffect(() => { if (userInput) { getSearchUser(userInput) .then((data) => { setUserArr(data); }) .catch((error) => { console.log(error..
state는 리액트에서 많이 사용 된다. 비중 있게 사용되는 만큼 사용 이유와 사용 방법을 정리해 보았다. state 사용 이유 데이터를 저장하는 방법에는 state를 사용하는 방법 외 변수에 저장하는 방법도 존재한다. 하지만 변수는 값이 변경되는 경우 html에 자동으로 반영이 안되는 반면 state는 값이 바뀌면 html이 자동으로 재렌더링을 한다. 이와 같은 차이점으로 자주 변경이 되는 html요소는 state로 값을 저장하여 데이터바인딩을 하는 것이 좋다. state 사용 방법 1. import state는 import를 해야 사용 할 수 있다. 보통 useState 단어를 입력하면 아래와 같이 상단에 자동으로 import 된다. ->import {useState} from 'react' 2. 구..
JSX 문법은 자바스크립트 파일 내에서 html을 표현할 때 사용되는 문법이다. 리액트에서 많이 사용되는 JSX 문법은 아래와 같다. 1. className JSX 문법과 html 문법의 차이점 중에 하나로 class를 부여할 때 'className'으로 카멜케이스를 활용해서 사용 해야 한다. 이를 사용해서 app.js파일에서 클래스 이름을 부여 하면 app.css에서 css하는데 활용 할 수 있다. *css파일은 app.js파일 내에 import 해야 적용할 수 있다. 2. 데이터바인딩시 {중괄호} 활용 리턴 문 밖에서 정의한 변수를 리턴안에서 활용(데이터 바인딩) 하고 싶다면 중괄호 안에 변수를 넣으면 적용 가능하다. 변수는 컨텐츠 내용 넣을 때나 클래스 이름 작명 할 때도 범용적으로 사용가능하다 i..

이전에 리액트를 사용하면서 npm을 사용한 경험이 있다. 이로 인해 npm은 리액트를 사용 할 때만 활용한다고 생각했었는데, JavaScript를 공부하는 와중에 npm을 사용하게 됐다. 이런 경험을 통해 평소 모호하게만 알고 있던 npm에 대해 공부하고 싶어 아래에 정리하게 되었다. 1. NPM이란? NPM은 Node Package Manager의 준말이며, Node.js 기반 패키지(모듈)들을 모아둔 저장소이자 매니저다. npm을 사용하고 싶다면, node.js가 먼저 설치되어야 하는데 node.js와 npm의 버전을 확인하고 npm을 설치하고 싶다면 터미널에 아래와 같이 입력하면 된다. node -v //node 버전 확인 npm -v //npm 버전 확인 npm init // npm 설치 2. N..