[react] JSX에서 Refs 다루기

React에서 Refs는 DOM 요소 또는 React 컴포넌트에 직접적으로 접근하기 위한 방법을 제공합니다. JSX에서 Refs를 다루는 방법에 대해 알아보겠습니다.

Refs 생성하기

JSX에서 Refs를 생성하는 방법은 다음과 같습니다:

class MyComponent extends React.Component {
  constructor(props) {
    super(props);
    this.myRef = React.createRef();
  }

  render() {
    return <div ref={this.myRef}>Hello, World!</div>;
  }
}

위 예제에서 React.createRef() 함수를 사용하여 Refs를 생성하고, ref 속성을 통해 해당 Ref를 연결합니다.

Refs 사용하기

Refs를 이용하여 DOM 요소에 직접적으로 접근할 수 있습니다:

class MyComponent extends React.Component {
  // ...

  focusInput() {
    this.myRef.current.focus();
  }

  // ...
}

current 속성을 사용하여 Refs에 직접적으로 접근할 수 있습니다. 위 예제에서는 focusInput 함수를 통해 Refs를 사용하여 input 요소에 포커스를 맞출 수 있습니다.

Refs를 이용한 컴포넌트 접근

Refs를 이용하여 자식 컴포넌트에도 접근할 수 있습니다:

class ParentComponent extends React.Component {
  constructor(props) {
    super(props);
    this.childRef = React.createRef();
  }

  render() {
    return <ChildComponent ref={this.childRef} />;
  }
}

부모 컴포넌트에서 Refs를 생성하고, 자식 컴포넌트의 ref 속성을 통해 부모 컴포넌트에서 자식 컴포넌트에 직접적으로 접근할 수 있습니다.

결론

JSX에서 Refs를 다루는 방법을 알아보았습니다. Refs를 이용하여 DOM 요소나 React 컴포넌트에 직접적으로 접근하는 방법을 숙지하면, 보다 유연하고 세밀한 컴포넌트 제어가 가능해집니다.

React 공식 문서 - Refs and the DOM