[React] useRef란? useRef의 사용

2022. 9. 19. 14:23·Front-End/React

 

2022.09.19 - [라이브러리/React] - [React] input태그 상태 관리

 

[React] input태그 상태 관리

input 태그 상태 관리하기 inputSample.js 생성 import React from 'react'; function InputSample() { return ( 초기화 값: ); } export default InputSample; App.js 에서 렌더링 import React from 'react'; im..

scoring.tistory.com

이 글은 이전 글인 input태그 상태관리와 연계 됩니다.

useRef란?

  • javascript에서 특정 Dom을 선택하는 역할
    ex) getElementById, querySelector
  • 특정 DOM에 접근할 때 사용한다.
  • 외부라이브러리 사용할때 유용하다.
  • 원하는 객체의 속성에 ref={} 의 형태로 작성
  • 포커스를 잡으려면 useRef객체.current.focus() 형태로 작성하면 된다.
const nameInput = useRef();

const onClick = () => {
    nameInput.current.focus();
}

return(
    <input ref={nameInput} />
    <button onClick={onClick}>클릭</button>
)

useRef의 사용

  • 포커스를 잡으려면 nameInput.current.focus() 형태로 작성하면 된다.
import React, {useRef, useState} from 'react';

function InputSample() {

    const [inputs, setInputs] = useState({
        name: '',
        nickname: ''
    });

    const nameInput = useRef(null);

    const {name, nickname} = inputs; //비구조화 할당을 통해서 값을 추출

    const onChange = (e) => {
        const {value, name} = e.target; // e.target에서 name과 value를 추출
        setInputs({
            ...inputs, // 기존의 input 객체를 복사
            [name] : value // name 값을 value로 설정
            });
    }

    const onReset = () => {
        setInputs({
            name: '',
            nickname: '',
        });
        nameInput.current.focus();
    };

    return (
        <div>
            <input
                placeholder="이름"
                name="name"
                onChange={onChange}
                value={name}
                ref={nameInput}
            />
            <input placeholder="닉네임" name="nickname" onChange={onChange} value={nickname}/>
            <button onClick={onReset}>초기화</button>
            <div>
                <b>값:</b>
                {name} ({nickname})
            </div>
        </div>
    );
}

export default InputSample;

초기화를 누르면 이름 input에 포커스가 잡힌다.

반응형
저작자표시 (새창열림)
'Front-End/React' 카테고리의 다른 글
  • [React] 배열에 항목 추가, 제거, 수정
  • [React] map을 이용한 배열 렌더링하기
  • [React] input태그 상태 관리
  • Props란? Props를 사용하는 방법
LightSource
LightSource
어제보단 발전한 오늘의 나를 위한 블로그
    반응형
  • LightSource
    LightSourceCoder
    LightSource
  • 전체
    오늘
    어제
    • 분류 전체보기 (152)
      • Git (4)
      • Language (6)
        • Java (6)
      • Back-End (63)
        • Spring Boot (4)
        • MyBatis (1)
        • Oracle (1)
        • PL SQL (3)
        • JPA (26)
        • Spring Data JPA (5)
        • Spring MVC (8)
        • Spring (12)
        • Spring Security (2)
        • Redis (1)
      • Front-End (38)
        • 아이오닉 (2)
        • JSP (7)
        • JavaScript (4)
        • React (16)
        • TypeScript (3)
        • Angular (6)
      • AWS (1)
      • CI & CD (1)
      • 개발지식 (13)
        • 네트워크 (9)
        • CS 지식 (4)
      • 데이터모델링 (2)
      • Tool (1)
      • 프로젝트 (5)
      • 독후감 (2)
      • 잡생각 (0)
      • 면접 준비 (1)
      • 알고리즘 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    리액트
    배열요소삭제
    배열요소수정
    react
    배요소열추가
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
LightSource
[React] useRef란? useRef의 사용
상단으로

티스토리툴바