React study/React JS로 영화 웹 서비스 만들기
[React] 1-5. JSX로 카운터 앱 만들기 (2)
카누가 좋아요
2023. 5. 23. 15:04
JSX를 이용하여 버튼 클릭 횟수를 알려주는 앱 만들기 (easier way)
지난 시간에 이어서 진행한다.
📌 이전 코드와 JSX를 이용한 코드 비교
3. Container 생성
이전 코드
. . . . .
const container = React.createElement("div", null, [Title, Button]);
. . . . .
JSX를 이용한 코드
. . . . .
const Container = () => {
return (
<div>
<Title />
<Button />
</div>
);
}
ReactDOM.render(<Container />, root);
- 변수명은 첫 글자를 대문자로 하여 적어주었다.
* 컴포넌트의 첫 글자는 반드시 대문자여야 한다! 만약 소문자라면, React와 JSX에서는 HTML button tag라고 인식하게 된다.
- div element를 생성할 것이므로 <div> tag를 적어주었다.
- 이전 코드에서는 content를 array 형식으로 적어주었는데, JSX를 이용한 코드에서는 div tag 안에 변수명을 tag 안에 적어줌으로써 content를 구현하였다. 이로써 Container는 Title 컴포넌트와 Button 컴포넌트를 조합하여 만든 컴포넌트가 되었다.
- Container는 함수 형태이므로 render의 인자로 들어갈 때 tag 형식으로 들어간다.
* Title과 Button을 <div>에 온전히 포함시키기 위해서는 Title과 Button을 함수화시켜야 한다. 즉, jsx 값이 return 되도록 해야 한다.
. . . . .
const Title = () => {
return (
<h3 id="title" onMouseEnter={() => console.log("mouse enter")}>
Hello I'm a title
</h3>
);
};
const Button = () => {
return (
<button
style={{
backgroundColor: "tomato",
}}
onClick={() => console.log("im clicked")}
>
Click me
</button>
);
};
. . . . .
JSX에서는 어플리케이션을 위와 같이 여러 작은 요소(컴포넌트)로 나누어 관리할 수 있게 해준다.
여러 요소로 잘게 쪼개서 필요할 때 합쳐서 렌더링하기만 하면 된다.
오늘의 코드
!--버튼을 몇 번 클릭했는지 세는 어플이다.-->
<!DOCTYPE html>
<html>
<body>
<div id="root"></div>
</body>
<!--아래 두 줄의 코드는 리액트를 실행시키는 코드이다. 작성하면 console창에 react라고 작성했을 때 결과를 불러올 수 있어야 한다.-->
<script src="https://unpkg.com/react@17.0.2/umd/react.production.min.js"></script>
<script src="https://unpkg.com/react-dom@17.0.2/umd/react-dom.production.min.js"></script>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
<script type="text/babel">
const root = document.getElementById("root");
const Title = () => {
return (
<h3 id="title" onMouseEnter={() => console.log("mouse enter")}>
Hello I'm a title
</h3>
);
};
const Button = () => {
return (
<button
style={{
backgroundColor: "tomato",
}}
onClick={() => console.log("im clicked")}
>
Click me
</button>
);
};
const Container = () => {
return (
<div>
<Title />
<Button />
</div>
);
};
ReactDOM.render(<Container />, root);
</script>
</html>
ReactJS로 영화 웹 서비스 만들기 – 노마드 코더 Nomad Coders
ReactJS로 영화 웹 서비스 만들기 – 노마드 코더 Nomad Coders
React for Beginners
nomadcoders.co