TIL - 55
React 에서 DOM 을 접근할 수 있다? (O/X)
- 접근 할 수 있다.
useRef()
를 사용하자!
const nameInput = useRef();
👉🏼 1. useRef() 를 사용하여 Ref 객체를 만들고
const onReset = () => {
setInputs({
name: '',
nickname: ''
});
nameInput.current.focus();
👉🏼 3. 그러면, Ref 객체의 .current 값은 우리가 원하는 DOM 을 가르키게 됩니다.
};
return (
<div>
<input
name="name"
placeholder="이름"
onChange={onChange}
value={name}
ref={nameInput}
👉🏼 2. 이 객체를 우리가 선택하고 싶은 DOM 에 ref 값으로 설정해주어야 합니다.
/>
- 위 예제에서는 onReset 함수에서 input 에 포커스를 하는 focus() DOM API 를 호출 - > . 이름 input 에 포커스가 잡힌다.
배열의 랜더링
- 배열을 랜더링 할때는 key 값에 id를 붙여준다. key값을 배치하지않으면 동적으로 배열을 쓰지 못한다.
import React from 'react';
function User({ user }) {
return (
<div>
<b>{user.username}</b> <span>({user.email})</span>
</div>
);
}
👉 중복되는 배열 부분은 함수로 만들어준다
function UserList() {
const users = [
{
id: 1,
username: 'velopert',
email: '[email protected]'
},
{
id: 2,
username: 'tester',
email: '[email protected]'
},
{
id: 3,
username: 'liz',
email: '[email protected]'
}
];
return (
<div>
{users.map(user => (
<User user={user} key={user.id} />
))}
</div>
);
}
👉 map()을 사용해서 반복되는 배열부분을 리턴한다.
export default UserList
* 만약 배열 안의 원소가 가지고 있는 고유한 값이 없다면 map() 함수를 사용 할 때 설정하는 콜백함수의 두번째 파라미터 index 를 key 로 사용하시면 됩니다.
<div>
{users.map((user, index) => (
<User user={user} key={index} />
))}
</div>
react에서 배열의 요소를 추가하는 법
concat
이나...spread
를 사용해야한다.- push등은 사용하면 안된다
왜냐면 immutable 한 함수를 사용해야지 값이 안변하고 복사가 가능하기 때문이다.
react 에서 배열 제거
filter
함수 이용하기
react에서 배열 수정
map
함수 이용하기
useEffect
- useEffect 라는 Hook 을 사용하여 컴포넌트가 마운트 됐을 때 (처음 나타났을 때), 언마운트 됐을 때 (사라질 때), 그리고 업데이트 될 때 (특정 props가 바뀔 때) 특정 작업을 처리하는 방법
- 화면이 처음 떴을때 실행.
- deps에 [] 빈배열을 넣을 떄.
- life cycle중 componentDidmount처럼 실행
- 화면이 사라질때 실행(clean up함수).
- componentWillUnmount처럼 실행
- deps에 넣은 파라미터값이 업데이트 됬을때 실행.
- componentDidUpdate처럼 실행.
useEffect에 관한 좋은 블로그
Author And Source
이 문제에 관하여(TIL - 55), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@wlgus5977/TIL-55저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)