React/일정관리 프로젝트

[React TodoList] 프로젝트 준비, UI 구성하기

Judith Hopps 2023. 3. 14. 17:01
반응형

1. 프로젝트 준비

프로젝트 생성 및 라이브러리 설치

//프로젝트 생성
npm create react-app Todo

//라이브러리
npm install node-sass
npm install classnames
npm install ract-icons

 

Prettier 설정 

루트 디렉터리 .prettierrc 파일 생성

{
  "singleQuote": true,
  "semi": true,
  "useTabs": false,
  "tabWidth": 2,
  "trailingComma": "all",
  "printWidth": 80
}

 

 

index.css 수정

body {
  margin: 0;
  padding: 0;
  background-color:azure;
}

 

App.js 컴포넌트 초기화

import React from 'react';

const App = () => {
  return (
    <div> Todo 
      
    </div>
  );
};

export default App;

 

 

 

2. 컴포넌트 구성

1. TodoTemplate
                           : 화면을 가운데에 정렬, 일정관리 보여주고 chileren으로 내부 JSX를 props로 받아와서 렌더링
2. TodoInsert
                           : 새로운 항목을 입력하고 추가하는 컴포넌트, state를 통해 인풋 상태 관리한다. 
3. TodoListItem
                           : 각 할 일 항목에 대한 정보를 보여주는 컴포넌트, todo 객체를 props로 받아 와서 UI 보여준다. 
4. TodoList
                           : todos 배열을 props로 받아 온 후, 배열 내장 함수 map을 사용해 반복 데이터를 레터링한다.

 

 

3. 컴포넌트 제작

TodoTemplate.js

import React from 'react';
import "./TodoTemplate.scss"

const TodoTemplate = ({children}) => {
  return (
    <div className='TodoTemplate'>
      <div className='app-title'>일정 관리</div>
      <div className='content'>{children}</div>
    </div>
  );
};

export default TodoTemplate;

 

App.js

import React from 'react';
import TodoTemplate from './TodoTemplate'

const App = () => {
  return (
    <TodoTemplate> Todo 프로젝트 초기 설정 </TodoTemplate>
  );
};

export default App;

 

TodoTemplate.scss

.TodoTemplate{
  width:512px;
  margin-top: 6rem;
  margin-left: auto;
  margin-right: auto;
  border-radius: 4px;
  overflow: hidden;

  .app-title{
    background-color: #22b8cf;
    color :white;
    height: 4rem;
    font-size: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .content{
    background-color: white;
  }

}

반응형