본문 바로가기
🖊️Programming Language/📌React

[React] 컴포넌트 제작

by 빛나고요 2021. 5. 3.
BIG

Study. React

컴포넌트 제작

[리액트가 없다면]

 

📌만약에 코드가 엄청 길다면 하나하나 눈에 한 번에 들어오지 않음

📌그래서 사용자 정의 태그를 이용

 

 

[컴포넌트 만들기(1)]

📌컴포넌트를 만드는 코드

class App extends Component {
  render(){
    return (
      <div className="App">
        Hello, React!!!
      </div>
    );
  }
}

 

📌컴포넌트를 만들 때는 반드시 하나의 최상위 태그만을 사용해야 함

📌class 이름을 지정해주고 Component 안에서 그 클래스 이름을 태그에 사용

import React, { Component } from 'react';
import './App.css';

class Subject extends Component {
  render() {
    return (
      <header>
          <h1>WEB</h1>
          world wide web!
      </header>
    );
  }
}

class App extends Component {
  render() {
    return (
      <div className="App">
        <Subject></Subject>
      </div>
    );
  }
  
}

export default App;

 

📌nav태그 안의 요소도 Component로 만들어서 실행시키기

import React, { Component } from 'react';
import './App.css';

class Subject extends Component {
  render() {
    return (
      <header>
          <h1>WEB</h1>
          world wide web!
      </header>
    );
  }
}

class Nav extends Component{
  render(){
    return(
      <nav>
            <ul>
                <li><a href="1.html">HTML</a></li>
                <li><a href="2.html">CSS</a></li>
                <li><a href="3.html">JavaScript</a></li>
            </ul>
      </nav>
    );
  }
}

class App extends Component {
  render() {
    return (
      <div className="App">
        <Subject></Subject>
        <Nav></Nav>
      </div>
    );
  }
  
}
export default App;

 

[컴포넌트 만들기(2)]

📌article태그 안의 요소를 Component로 만들어서 실행시키기

import React, { Component } from 'react';
import './App.css';

class Subject extends Component {
  render() {
    return (
      <header>
          <h1>WEB</h1>
          world wide web!
      </header>
    );
  }
}

class TOC extends Component{
  render(){
    return(
      <nav>
            <ul>
                <li><a href="1.html">HTML</a></li>
                <li><a href="2.html">CSS</a></li>
                <li><a href="3.html">JavaScript</a></li>
            </ul>
      </nav>
    );
  }
}

class Content extends Component{
  render(){
    return(
      <article>
        <h2>HTML</h2>
        HTML is HyperText Markup Language.
      </article>
    );
  }
}

class App extends Component {
  render() {
    return (
      <div className="App">
        <Subject></Subject>
        <TOC></TOC>
        <Content></Content>
      </div>
    );
  }
  
}

export default App;

 

 

[props]

📌코드를 줄여서 훨씬 효율적으로 사용 가능

📌ex) Subject 클래스 내에서 <h1>{this.props.title}</h1>

    👉 App component 내에서 <Subject title="WEB"></Subject>

📌결과는 똑같음, 코드가 더 줄어들어서 효율적임

import React, { Component } from 'react';
import './App.css';

class Subject extends Component {
  render() {
    return (
      <header>
          <h1>{this.props.title}</h1>
          {this.props.sub}
      </header>
    );
  }
}

class TOC extends Component{
  render(){
    return(
      <nav>
            <ul>
                <li><a href="1.html">HTML</a></li>
                <li><a href="2.html">CSS</a></li>
                <li><a href="3.html">JavaScript</a></li>
            </ul>
      </nav>
    );
  }
}

class Content extends Component{
  render(){
    return(
      <article>
        <h2>{this.props.title}</h2>
        {this.props.desc}
      </article>
    );
  }
}

class Aside extends Component{
  render(){
    return(
      <aside>
        <button>hello</button>
      </aside>
    )
  }
}

class App extends Component {
  render() {
    return (
      <div className="App">
        <Subject title="WEB" sub="world wide web"></Subject>
        <TOC></TOC>
        <Content title="HTML" desc="HTML is Hypertext Markup Language"></Content>
        <Aside></Aside>
      </div>
    );
  }
  
}

export default App;

 

 

📎강의-생활코딩:opentutorials.org/module/4058/24737

 

💡App 컴포넌트 안에 있는 사용자 정의 태그의 요소들을 태그 이름으로 만든 컴포넌트 클래스 안으로 가져오려면 this.props를 붙여서 '사용자 정의 태그 이름.props.title'로 title을 당겨온다. 

 

 

오늘은 여기까지

첫 영상을 보고 꽤 재밌겠다는 생각이 들어서 계속보기 시작했다.

사실 너무 긴 강의들은 점점 지루하다는 생각이 들어서 뒤로 갈수록 미루거나 포기하게 된다.

그러나 이 강의는 설명은 물론이고 강의가 길지 않아서 시간도 금방 가는 것 같다.

지금은 잠와서 잠깐 딴짓했더니 집중력이 흐트러져서 여기까지 보는 거고 아니었으면 더 봤을 거다.

내일도 무조건 강의를 들으러 오겠다.

하띵👊

'🖊️Programming Language > 📌React' 카테고리의 다른 글

[React] 이벤트  (0) 2021.05.05
[React] State  (0) 2021.05.04
[React] 컴포넌트 제작  (0) 2021.05.04
[React] 개발환경  (0) 2021.05.03
[React] 시작  (0) 2021.05.03

댓글