React

03 컴포넌트 기초

라타노 2025. 8. 24. 20:59
반응형

프로젝트 구조

 

main.jsx

// node_modules의 모듈에서 react,react-dom 가져와서 임포트
import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'

import './index.css'

import App from './App.jsx'

import App01 from './App01.jsx'

import App02 from './App02.jsx'

import App03 from './App03.jsx'

import App04 from './App04.jsx'

import App05 from './App05.jsx'



createRoot(document.getElementById('root')).render(

  <StrictMode>

    {/* <App /> */}

    {/* <App01/> */}

    {/* <App02/> */}

    {/* <App03/> */}

    {/* <App04/> */}

    <App05/>

  </StrictMode>,

)

 

 

1) 사용 예시

import App from './App.jsx'

 

createRoot(document.getElementById('root')).render({jsx}<StrictMode>태그에서
<App />으로 선언되어 실행된다

 

createRoot(document.getElementById('root')).render( 실제 개발자 도구에서 html 구조를 보면 <root> 태그 안에서 값을 불러온다

 

 

2) import { StrictMode }와 import { createRoot }

// node_modules의 모듈에서 react,react-dom 가져와서 임포트
import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'

 

[프로젝트 구조]에서 node_modules 폴더에

  • react
  • react-dom

라이브러리를 import하여 사용함

 

 

createRoot(document.getElementById('root')).render(
  • createRoot는 React 18에서 사용하는 "React 앱을 웹 페이지에 렌더링"하는 코드

 

<StrictMode>

  • 문제가 있거나 권장되지 않는 코드들에 대해 경고해주는 기능

 

 

3) 컴포넌트란?

리엑트의 컴포넌트란 웹페이지의 구성요소들을 재사용가능한 단위로 나눈 것

  • 예시) main.jsx의 태그

App.jsx

import Child from './Child'
import { ClassComp, FunctionComp, ArrowFunctionComp } from './Components'

function Hello() {
  return <h1>Hello</h1>
}

function App() {

  return (
    <>
      <Hello />
      <h2>World</h2>
      <Child />

      <ClassComp /> // class 컴포넌트, 오늘날 사용X
      <FunctionComp /> // 함수형 컴포넌트
      <ArrowFunctionComp /> // 함수형 컴포넌트
    </>
  )
}

export default App

 

Child.jsx

function Child() {

  return (
    <p>
      This is a
      <br />
      child component
    </p>
  )
}

export default Child

 

Components.jsx

import React, { Component } from 'react';

// class 방식은 오늘날 잘 사용되지 않음
class ClassComp extends Component {
  render() {
    return <p>Class Comp</p>;
  }
}

// 성능 및 추상화, 재사용에 유리한 함수형 컴포넌트 방식을 주로 사용
function FunctionComp() {
  return <p>Function Comp</p>;
}

const ArrowFunctionComp = () => {
  return <p>Arrow Function Comp</p>;
};

export { ClassComp, FunctionComp, ArrowFunctionComp };
반응형