[React.js] useRef로 컴포넌트의 변수 생성하기

2024. 3. 13. 15:42Web/React.js

useRef란

새로운 Reference 객체를 생성하는 기능 이다.

const refObject = useRef()

컴포넌트 내부 변수로 일반적인 값들도 저장이 가능하다.

useRef                                                           useState

Reference  객체를 생성                                 State를 생성

컴포넌트 내부의 변수로 활용 가능                컴포넌트 내부의 변수로 활용 가능

어떤 경우에도 리렌더링을 유발하지 않음     값이 변경되면 컴포넌트 리렌더링

 

리렌더링을 유발 시키지 않은 그런 변수를 만들고 싶을때 useRef를 사용

useRef는 특정 DOM 요소에 접근할수 가있다.

해당요소를 조작할 수 있다.

특정 요소에 Focus를 준다던지 Styil을 변경할 수 있다.

 

const refobj = useRef(0);
  console.log("Register 렌더링");
 
return (
    <>
      <button
        onClick={() => {
          refobj.current++;
          console.log(refobj.current);
        }}
      >
        ref +1
      </button>

 

이처럼 버튼을 클릭하면 새로 렌더링이 되지 않는걸 볼 수 있다.

 

useRef를 이용해 돔요소 접근

const [input, setInput] = useState({
    name: "",
    birth: "",
    country: "",
    bio: "",
  });
 
const inputRef = useRef();
 
const onsubmit = () => {
    if (input.name === "") {
      //이름을 입력하는 DOM 요소 포커스
      inputRef.current.focus();
    }
  };
return (
     <div>
        <input
          ref={inputRef}
          name="name"
          value={input.name}
          onChange={onChange}
          placeholder={"이름"}
        />
      </div>
<button onClick={onsubmit}>제출</button>

 

제출버튼을 눌럿을때 onsubmit 함수에서 name에 빈문자열이라면 해당DOM 요소에 Focus를 맞춤

 

 

 

 

 

 

 

 

 

 

반응형

'Web > React.js' 카테고리의 다른 글

[React.js] 라이프사이클(LifeCycle)  (0) 2024.03.15
[React.js] React Hooks  (0) 2024.03.13
[React.js] State로 사용자 입력 관리하기  (0) 2024.03.12
[React.js] State를 Props로 전달  (0) 2024.03.12
[React.js] State - 상태 관리  (0) 2024.03.11