[소플의 처음 만난 리액트] 5장 실습문제

Comment.jsx와 CommentList.jsx는 리액트를 사용하여 댓글 컴포넌트를 만드는 실습 예제입니다. 컴포넌트와 props에 대한 기본적인 이해를 실습을 통해 파악할 수 있습니다.
Dec 30, 2023
[소플의 처음 만난 리액트] 5장 실습문제

Comment.jsx

import React from "react"; // 실습: 댓글 컴포넌트 만들기 const styles = { wrapper: { margin: 8, padding: 8, display: "flex", flexDirection: "row", border: "1px solid grey", borderRadius: 16, }, imageContainer: {}, image: { width: 50, height: 50, borderRadius: 25, }, contentContainer: { marginLeft: 8, display: "flex", flexDirection: "column", justifyContent: "center", }, nameText: { color: "black", fontSize: 16, fontWeight: "bold", }, commentText: { color: "black", fontSize: 16, }, } function Comment(props) { return ( <div style={styles.wrapper}> <div style={styles.imageContainer}> <img src="https://upload.wikimedia.org/wikipedia/commons/8/89/Portrait_Placeholder.png" alt="profilePicture" style={styles.image} /> </div> <div style={styles.contentContainer}> <span style={styles.nameText}>{props.name}</span> <span style={styles.commentText}>{props.comment}</span> </div> </div> ); } export default Comment;

CommentList.jsx

import React from "react"; import Comment from "./Comment"; const comments = [ { name: "이인제", comment: "안녕하세요, 소플입니다.", }, { name: "유재석", comment: "리액트 재미있어요~!", }, { name: "강민경", comment: "저도 리액트 배워 보고 싶어요!!", }, ] function CommentList(props) { return ( <div> {comments.map((e) => { // e는 element의 줄임말 return ( <Comment name={e.name} comment={e.comment} /> ); })} </div> ); } export default CommentList;
 

핵심 키워드

  • 댓글 모양을 표현하기 위해 CSS 코드를 props로 넘겨줄 수 있다.
  • 컴포넌트를 통해 UI를 재사용 가능한 개별적인 여러 조각으로 나눌 수 있다.
  • 컴포넌트의 자체 props를 수정해서는 안된다. 모든 React 컴포넌트는 자신의 props를 다룰 때 반드시 순수 함수처럼 동작해야 한다.
  • JSX에서 이벤트 핸들러로 넘기는 콜백함수는 return 이전에 정의되며, 이벤트에 걸리는 이벤트 리스너는 인자로 해당 synthetic event를 받을 수 있다.
 

결론!

컴포넌트와 props에 대한 기본적인 이해를 실습을 통해 파악할 수 있었다.
 
Share article

More articles

See more posts

👨🏻‍💻DriedPollack's Blog