[0] 개발환경
 - nodejs 설치
 - VSCode 설치

[1] React 프로젝트 생성
 - npx create-react-app 'react-basic'

 - 안될 경우 
 - npm uninstall -g create-react-app
 - npm install -g create-react-app
 - npx create-react-app 'react-basic'

[2] 프로젝트 실행
 - npm start
 - localhost:3000
 - public/index.html의 (id="root")는
 - src/index.js의 document.getElementById('root')에 렌더링 한다. 
 - src/index.js의 <App />은 
 - src/App.js의 function App(){} (App 컴포넌트)의 return안에 있는 내용을 가져와서 출력한다.

[3] 프로젝트 구성 설명
 - node_modules : 라이브러리 폴더
 - public폴더
   └ index.html이 메인페이지 (App.js → index.js → index.html)
   └ static파일 보관함
 - src폴더 : 소스코드 보관함
 - package.json : 설치한 라이브러리 목록

[4] 컴포넌트 설명
 - 리액트(React) 컴포넌트는 React 애플리케이션을 구성하는 기본 단위(UI의 한부분)
 - 독립적이고 재사용 가능한 코드 블록
 - 자체적인 구조, 스타일, 동작
 - 큰 UI를 관리하기 쉬운 작은 단위로 분할하여, 애플리케이션의 코드를 더 효율적으로 관리하고 재사용

 - 클래스형과 함수형 컴포넌트가 있지만 최근에는 함수형을 사용한다.
 - 함수형 컴포넌트 snippet : "rsc" 자동완성

[5] 컴포넌트 활용 알아보기
  (1) App.js

import './App.css';
import Strat from './component/Start';


function App() {

  return (
    <div className="App">
      <Strat />
    </div>
  );
}

export default App;


  (2) Start.jsx

import React from 'react';

const Start = () => {

    // 해당 영역에서는 이와 같이 주석을 사용할 수 있습니다.
    const name = "도깨비";

    // JSX(JavaScriptXML) : 코드 간결, 가독성 좋음
    // JSX를 사용하는 주요 이유 중 하나는 JavaScript 함수 내에서 HTML과 유사한 문법을 사용할 수 있게 함으로써, 
    // 사용자 인터페이스(UI)를 더 직관적이고 선언적으로 구성

    const style = {
        color : "white",
        backgroundColor : "black",
        fontSize : "48px",
        fontWeight : "bold",
        padding : "16px"
    }

    return (
        <div className='start'>
            <h2>이 곳은 Start.jsx 영역입니다.</h2>
            <h2>Start.jsx 내용이 출력됩니다.</h2>

            {/* 주석은 아래와 같이 작성합니다. */}
            {/* {React.createElement('h2', null, `${name}님 반갑습니다.`)} */}
            <h2 style={style}>{name}님 반갑습니다.</h2>
        </div>
    );
};

export default Start;

 

[6] 리액트 레이아웃 + css 적용하기

import './App.css';
import Header from './component/Header';
import Home from './component/Home';
import Footer from './component/Footer';

function App() {

  return (
    <div className="App">
      <Header/>
      <Home/>
      <Footer/>
    </div>
  );
}

export default App;

 

import React from 'react';

const Header = () => {
    return (
        <div className='header'>
            Header.jsx
        </div>
    );
};

export default Header;
import React from 'react';

const Home = () => {
    return (
        <div className='home'>
            Home.jsx
        </div>
    );
};

export default Home;
import React from 'react';

const Header = () => {
    return (
        <div className='header'>
            Header.jsx
        </div>
    );
};

export default Header;
import React from 'react';

const Footer = () => {
    return (
        <div className='footer'>
            <h3>COPYRIGHT © 2024 BY ICIA ALL RIGHTS RESERVED.</h3>
            <h2>프로젝트 기반의 리액트 기초 보수교육</h2>
            <h4>한국기술교육대학교 능력개발교육원 & 인천일보아카데미</h4>
        </div>
    );
};

export default Footer;
* {
    margin: 0;
    text-align: center;
}

.header {
    background-color: lightpink;
    height: 100px;
}

.home {
    background-color: lightblue;
    height: 400px;
}

.footer {
    background-color: lightgreen;
    height: 150px;
}

'React' 카테고리의 다른 글

[React] Props에 대한 설명과 예시  (0) 2024.01.19
[React] Component 생명주기(LifeCycle)와 Hooks  (0) 2024.01.18
[React] JSX사용법  (0) 2024.01.17
[React] 리액트 준비하기  (0) 2024.01.17
[React] 리액트 첫시간  (0) 2024.01.16

+ Recent posts