๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
JavaScript/React

[์ƒํ™œ์ฝ”๋”ฉ-React] Component ํŒŒ์ผ๋กœ ๋ถ„๋ฆฌํ•˜๊ธฐ

by ์ฝ”๋”ฉํ•˜๋Š” ๋ถ•์–ด 2021. 5. 29.
๋ฐ˜์‘ํ˜•

[์ถœ์ฒ˜ : Youtube - ์ƒํ™œ์ฝ”๋”ฉ]

https://youtu.be/8hGqznPGVc0?list=PLuHgQVnccGMCRv6f8H9K5Xwsdyg4sFSdi

 

src ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์— components ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

 

 

components ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์—๋Š” TOC.js๋ผ๋Š” ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค.



 

TOC.js ํŒŒ์ผ์—๋‹ค๊ฐ€ App.js์˜ TOC ํด๋ž˜์Šค๋ฅผ ๋ณต๋ถ™ํ•œ๋‹ค.

์•„๋ž˜์˜ ์ฝ”๋“œ๋„ ๊ฐ™์ด ๋ณต๋ถ™ํ•œ๋‹ค.

import React, { Component } from 'react';

'react๋ผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ Component๋ผ๊ณ  ํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ๋กœ๋”ฉํ•œ๋‹ค' ๋ผ๋Š” ๋œป์ด๋‹ค.

๋ฆฌ์•กํŠธ๋ฅผ ์‚ฌ์šฉํ•  ๋• ํ•„์ˆ˜์ ์œผ๋กœ ๋„ฃ์–ด์•ผํ•˜๋Š” ์ฝ”๋“œ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

 

 

 

TOC๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ์™ธ๋ถ€์—์„œ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ํ—ˆ์šฉํ•˜๋Š” ์ฝ”๋“œ๋„ ์ž‘์„ฑํ•œ๋‹ค.

export default TOC;

 

 

 

์•„๋ž˜์˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  App.js ๋‚ด์˜ TOC ํด๋ž˜์Šค๋Š” ์‚ญ์ œํ•œ๋‹ค.

import TOC from "./components/TOC";

 

 

src/App.js

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

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

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

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>
      </div>
    );
  }
}

export default App;

 

 

 

๋‹ค๋ฅธ ํด๋ž˜์Šค๋“ค๋„ ๋˜‘๊ฐ™์ด ํ•ด์ค€๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ํ›จ์”ฌ ๊ฐ„๊ฒฐํ•ด์ง„๋‹ค.

 

 

src/App.js (์ฝ”๋“œ ๋ถ„๋ฆฌ ํ›„)

import './App.css';
import TOC from "./components/TOC";
import Content from "./components/Content";
import Subject from "./components/Subject";
import React, { Component } from 'react';

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>
      </div>
    );
  }
}

export default App;
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€