Programming/React
-
- [React.js] 실시간으로 특정 요소의 길이값 가져오기
실시간으로 특정 요소의 길이값 가져오기들어가며리액트애서 실시간으로 특정 요소의 길이값을 가져오는 방법을 알아보자. 방법우선 @useRef@를 이용하여 실시간으로 길이값을 가져올 요소를 지정해준다.import {useRef} from 'react';// ...const horiRef = useRef(null);// ...return ( {/* ... */} ); 다음과 같이 @useEffect@와 @ResizeObserver@를 이용하여 해당 요소의 사이즈값을 실시간으로 가져올 수 있다.import { useEffect } from 'react';useEffect(() => { const resizeObserver = new ResizeObserver((entries) => ..
2024.03.26 -
- [React.js] state와 ref 비교하기
state와 ref 비교하기들어가며리액트에서 자주 사용되는 @ref@와 @state@를 비교해보자. 비교@useState@를 통해 생성된 객체는 리렌더링 중에 초기화가 되지만, @useRef@를 통해 생성된 객체는 리렌더링 중에 초기화가 되지 않는다.@useState@는 @[value, setValue]@를 반환하고, @useRef@는 @{ current : value }@를 반환한다. @ref@@state@@useRef(initialValue)@는 @{ current: initialValue }@을 반환@useState(initialValue)@는 @state@ 변수의 현재값과 @state@ 설정자 함수@([value, setValue])@를 반환Mutable → 렌더링 프로세스 외부에서 @curren..
2024.03.02 -
- [React.js] 마우스 호버 효과를 적용하기 위한 커스텀 훅 만들기 (useHover.js)
마우스 호버 효과를 적용하기 위한 커스텀 훅 만들기 (useHover.js) 들어가며 요소 위에 마우스 커서를 호버 시, 효과가 작동할 수 있도록 커스텀 훅을 만들어보자. 방법 기존의 방법 커스텀 훅을 사용하지 않을 경우, @mouseover@, @mouseout@에 대한 각각의 이벤트 핸들러 함수를 만들어서 마우스 호버 효과를 적용시키고 싶은 대상에 연결해 주는 방식으로 구현할 수 있었다. import React, { useState } from react; const MyComponent = () => { const [isHovered, setIsHovered] = useState(false); const handleMouseOver = () => { setShowPopup(true); }; cons..
2024.02.20 -
- [React.js] Node.js 설치부터 리액트 프로젝트 테스트까지 정리
Node.js 설치부터 리액트 프로젝트 테스트까지 정리 들어가며 Node.js 설치, NVM 설치, 리액트 프로젝트 생성 및 테스트까지의 과정을 정리해본다. 방법 (1) Node.js 설치 회사 또는 팀에서 사용하고 있는 버전의 Node.js를 설치하도록 한다. Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org (2) nvm 설치 NVM(Node Version Manager)은 Node.js의 버전을 관리해주는 프로그램이다. @nvm-setup.exe@ 설치 파일을 다운로드 받아 실행한다. Releases · coreybutler/nvm-windows A node.js version mana..
2024.02.05 -
- [React.js] 클래스 컴포넌트(Class Components)와 함수형 컴포넌트(Functional Components)
클래스 컴포넌트(Class Components)와 함수형 컴포넌트(Functional Components) 들어가며 리액트(React)는 기본적으로 클래스 컴포넌트(Class Components)와 함수형 컴포넌트(Functional Components) 2가지 유형의 컴포넌트를 제공한다. 최신 리액트 버전에서는 함수형 컴포넌트와 훅스(Hooks)를 사용하는 것이 권장되며, 상태 관리나 라이프사이클 이벤트 처리를 더 간단하게 할 수 있는 장점이 있다. 그러나 이미 클래스 컴포넌트로 작성된 코드가 많다면, 따로 변경할 필요는 없다. 클래스 컴포넌트와 함수형 컴포넌트에 대해 알아보자. 클래스 컴포넌트(Class Components) ES6의 클래스 문법을 사용하여 생성된다. @class@ 키워드를 사용하여 ..
2023.12.14 -
- [React.js] 훅(Hook)
훅(Hook)들어가며리액트(React)에서 사용되는 기본적인 훅(Hook)들에 대해 알아보자. 훅(Hook)개념함수 컴포넌트에서 상태(State)나 생명주기 기능 등을 사용할 수 있도록 도와주는 기능클래스 컴포넌트의 기능을 함수 컴포넌트에서도 사용할 수 있게 해준다.가장 널리 사용되는 훅으로는 @useState@, @useEffect@, @useContext@ 등이 있다.각각의 훅을 활용하면 함수 컴포넌트에서 상태 관리, 부수 효과 처리, 전역적인 데이터 공유 등을 편리하게 할 수 있다.이 외에도 많은 다양한 훅이 있으며, 직접 커스텀 훅을 만들어 사용할 수도 있다.훅을 사용하면 함수 컴포넌트에서 상태를 관리하고, 생명주기 메서드를 이용할 수 있어 훨씬 간결하고 유연한 코드를 작성할 수 있게 된다. 종류..
2023.12.13 -
- [React.js] React Developer Tools
React Developer Tools 들어가며 React Developer Tools 확장 프로그램에 대해 알아보자. React Developer Tools 개념 React 애플리케이션을 개발할 때 도움이 되는 크롬 브라우저 확장 프로그램 이 도구를 사용하면 React 앱의 컴포넌트 구조, 상태, 속성 등을 더 쉽게 이해하고 디버깅할 수 있다. 설치 React Developer Tools를 설치하면 크롬 브라우저의 "개발자 도구" 섹션에서 React 탭이 추가된다. React Developer Tools Adds React debugging tools to the Chrome Developer Tools. Created from revision 993c4d003 on 12/5/2023. chrome.g..
2023.12.13 -
- [React.js] 리액트(React.js) 개발 환경 구축하기 (Windows)
리액트(React.js) 개발 환경 구축하기 (Windows) 들어가며 윈도우(Windows)에서 리액트(React.js) 개발 환경을 구축해보자. 방법 ① Node.js 설치하기 Node.js 프로그램을 컴퓨터에 설치해준다. Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org ② 비주얼 스튜디오 코드(VS Code) 설치 및 확장 프로그램 설치 비주얼 스튜디오 코드(VS Code)를 설치하고, VS Code에 아래의 확장 프로그램을 설치한다. Babel JavaScript vscode-icons JS JSX Snippets ③ 리액트 앱 생성하기 @my-app@ 이라는 프로젝트를 생성하려면 ..
2023.11.27 -
- [React.js] 리액트(React)에서 HTML 요소의 클래스를 지정할 때 class가 아닌 className을 사용하는 이유?
리액트(React)에서 HTML 요소의 클래스를 지정할 때 class가 아닌 className을 사용하는 이유? 들어가며 리액트(React)에서 HTML 요소의 클래스를 지정할 때 @class@가 아닌 @className@을 지정하는 이유를 알아보자. 이유 리액트(React)에서 HTML 요소의 클래스를 지정할 때, 다음과 같이 @class@가 아닌 @className@을 지정한다. 그 이유는 자바스크립트(JavaScript)와의 충돌을 피하기 위해서이다. 리액트는 자바스크립트와 JSX를 사용하여 UI를 작성한다. JSX는 자바스크립트의 확장 문법이다. JSX는 HTML과 유사하게 보이지만, 자바스크립트의 일부이다. 자바스크립트에는 @class@라는 키워드(Keyword)가 있기 때문에 리액트에서 HTM..
1 2023.11.26