TIL [객체를 만드는 방법] [리액트에서 쓰는 중요한 방법]
1. 기존의 객체를 만드는 방법
const obj = {
name: 'gildong',
age: 22,
};
2. 기존의 HTML + JavaScript 에서 이벤트를 실행할 때
<head>
<title>인라인 이벤트 모델</title>
<script>
function sum(n){
console.log(n);
}
</script>
</head>
<body>
<button onclick = "sum(10)">클릭</button>
<button onclick = "console.log('ok')">클릭</button>
</body>
HTML에서 이렇게 인라인 이벤트 모델을 실행할 때는 큰따옴표 안에 실행할 코드를 넣었다.
3. 리액트에서 이벤트를 실행할 때
리액트에서는 함수 형태의 객체를 바로 전달한다. 함수는 바로 만들어서 전달해도 되고, 렌더링 부분 외부에 미리 만들어서 전달해도 된다.
const Say = () => {
const [message, setMessage] = useState('');
return {
<div>
<button onClick = {() => setMessage('안녕하세요!')}>입장</button>
</div> // 렌더링 부분에서 바로 함수를 전달한다.
};
}
const Say = () => {
const [message, setMessage] = useState('');
const onClickEnter = () => setMessage('안녕하세요!');
// 화살표 함수를 렌더링 부분 외부에 미리 만든다.
return {
<div>
<button onClick = {onClickEnter}>입장</button>
</div>
};
}
4. 기존의 객체를 만드는 방법과 다르게 객체를 만드는 방법
const obj = {
['name']: 'gildong',
['age']: 22,
}
왜 이 방법이 리액트에서 중요할까?
리액트에서 이벤트를 실행할 때 렌더링 부분 외부에 미리 함수를 만들어서 전달한다고 했다. 그 함수의 파라미터로 받아온 값 (여기서는 이벤트 실행 후 나온 값 e)으로 객체를 만들때 유용한 방법이다. 주로 밑의 예시 처럼 this.setState를 쓸 때 사용하면 좋다.
state = {
username: '',
}
handleChange = (e) => {
this.setState({
[e.target.name]: e.target.value // { ['username']: e.target.value }
});
}
.
.
.
render() {
return (
<div>
<input
type='text'
name='username'
placeholder='사용자명'
value={this.state.username}
onChange={this.handleChange} // 함수가 들어감
/>
</div>
);
}
이렇게 하면 기존의 state 객체가 이렇게 바뀌게 된다.
state = {
username: e.target.value // 사용자가 input box에 입력한 값
}
username의 value는 사용자가 입력한 값이 되겠다.
Author And Source
이 문제에 관하여(TIL [객체를 만드는 방법] [리액트에서 쓰는 중요한 방법]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dlrbwls0302/TIL-객체를-만드는-방법-리액트에서-쓰는-중요한-방법저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)