포스트

LG CNS 부트캠프 학습일지 7일차

학습 내용

  • React State
  • React Hook

클래스 컴포넌트

Java와 객체지향 프로그래밍에 익숙하다보니 컴포넌트도 클래스와 비슷할 것이라고 생각했다. 실제로 클래스 컴포넌트라는 것이 있지만 함수 컴포넌트를 사용하는 것을 권장한다.

React State

1
2
3
4
5
6
7
8
9
10
11
export const MyComponent = () => {
	const [title, setTitle] = useState("");

	if (title === "") {
		setTitle("My Title");
	}
	
	return (
		<h1>{title}</h1>
	);
}

React Hook

1
2
3
4
5
6
7
export const MyComponent = () => {
	const [foo, setFoo] = useState(0);

	useEffect(() => {
		console.log(`foo Changed!`);
	}, [foo]);
}

결론

리엑트 경험이 부족하기 때문에 리엑트를 평가하는 것 자체가 어불성설이다. 그래도 하고 싶은 이야기가 있다. 함수 컴포넌트와 State와 Hook으로 클래스의 필드와 메소드 같은 것을 구현하게 만든 것이 이상하다. 클래스 컴포넌트를 사용했을 때 불편한 점이 있기 때문일 것이다. 리엑트 개발자들도 바보는 아니기 때문에 처음에는 클래스 컴포넌트로 어떻게든 해보려고 했을 것이다. 그렇다면 자바스크립트 자체의 한계가 아닐까 싶다.

확실한 정보는 아니지만 자바스크립트의 이름도 당시 가장 인기가 있었던 자바의 인기에 무임승차하려는 의도가 있었다고 들었다. 언어의 설계도 부족한 점이 있었던 것은 아닐까 싶다.

The choice of the JavaScript name has caused confusion, implying that it is directly related to Java. At the time, the dot-com boom had begun and Java was a popular new language, so Eich considered the JavaScript name a marketing ploy by Netscape. 1

참고문헌

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

Comments powered by Disqus.