본문 바로가기

React

React CreateRef

* Class 에서

①   함수로

- 얘를 쓰는 경우 :  함수여서 ref를 설정할 때 자유도가 조금 있다. 미세하게 조정가능한 장점이 있다.

inputRef;
onInputRef = (c) => { this.inputRef = c ; };

 

② 얘는 세팅시 current 필요

inputRef = createRef();

inputRef.current = "~~~";
inputRef.current.focus();

 

* Hooks에서

const React = require('react');
const { useState, useRef } = React;

const WordRelay = () => {
    const [word, setWord] = useState('aaa');
    
    const inputRef = useRef(null);

    const onSubmitForm = (e) => {
        e.preventDefault();
        setResult('딩동댕');
        setWord(value);
        setValue('');

        inputRef.current.focus();
    }

    const onChangeInput = (e) => {
        setValue(e.currentTarget.value);
        // currentTarget : 이벤트 생성 위치
        // target :  이벤트 발생 위치
    };

    
    return (
        <>
            <div>{ word }</div>
            <form onSubmit= { onSubmitForm }>
                <label htmlFor="wordInput">글자를 입력하세요</label>
                {/* controlled Input : value 와 onChange 가 있는거. */}
                {/* uncontrolled Input 은 이런거 없는것. react에서는 controlled Input을 권장 */}
                
                <input 
                    id="wordInput" 
                    className="wordInput" 
                    ref= { inputRef } 
                    value= { value } 
                    onChange= { onChangeInput }/>
                {/* value 와 onChange 세트로 넣을거 아니면 defaultValue 를 사용해야한다. */}
                <button>입력!!!!!!!!!!!!!!</button>
            </form>
            <div>{ result }</div>
        </>
    )
}

module.exports = WordRelay;// 이 줄을 추가해야 client.jsx 에서 불러올 수 있다.

'React' 카테고리의 다른 글

React - Hooks의 useState, useRef, useEffect, useMemo, useCallback 차이  (0) 2022.08.15
React component life cycle  (0) 2022.06.30
React 성능 최적화  (0) 2022.06.28
React 컴포넌트 나누기  (0) 2022.06.28
React if문  (0) 2022.06.28