React

React STEP 25 - 기본 구조 사용하기

2025. 3. 4. 13:58
728x90

⭐ React 기본 구조

  • HTML : 컴포넌트 방식으로 로딩합니다.
  • CSS : import 방식으로 로딩합니다.
  • Script: 생명주기 함수로 스크립트 작업을 할 수 있습니다.

 

1. Form 형식 페이지

  • 기본 사용 Form 페이지, title, description, form 각각의 컴포넌트로 분리 및 사용
  • App.js
import React, { Component } from 'react';
import './App.css';
import './css/basic1.css';
import Component1 from './js2/Component1_1';
import Component2 from './js2/Component1_2';
import Component3 from './js2/Component1_3';

 class App extends Component {
    constructor(){
		super();

		this.state={
			title: "Contact Me",
			description: "Integer eu ante ornare amet commetus vestibulum blandit integer in curae ac faucibus integer non. Adipiscing cubilia elementum integer. Integer eu ante ornare amet commetus."
		};
	}

	render(){
		return(
			<div className="container">
				<section id="contact">
					<Component1 propsValue={this.state.title} />
					<Component2 propsValue={this.state.description} />
					<Component3 />
				</section>
			</div>
		);
	}
 }

 export default App;
  • Component1_1.js ~ Component1_3.js
import React, { Component } from 'react';

class Component1_1 extends React.Component {
    render() {
        return (
            <h2>{this.props.propsValue}</h2>
        );
    }
}

export default Component1_1;

import React, { Component } from 'react';

class Component1_2 extends Component {
    render() {
        return (
            <p>{this.props.propsValue}</p>
        );
    }
}

export default Component1_2;

import React, { Component } from 'react';

class Component1_3 extends Component {
    render() {
        return (
            <form>
                <input type="text" placeholder='Name' className='name' />
                <input type="email" placeholder="Email" className="email" />
				<input type="text" placeholder="Subject" className="subject" />
				<textarea placeholder="Message" className="message" />
				<input type="submit" value="Send Message" />
				<input type="reset" value="Reset Form" />
            </form>
        );
    }
}

export default Component1_3;

 

  • 결과

 

2. 푸터 사용하기

  • 기본 사용 Footer : List 형식으로 요소들을 state를 사용하여 동적 반영
  • App.js
import React, { Component } from 'react';
import './App.css';
import './css/basic2.css';
import Component1 from './js2/step2/Component2_1';
import Component2 from './js2/step2/Component2_2';
import Component3 from './js2/step2/Component2_3';

 class App extends Component {
    constructor(){
		super();

		this.state={
			logo: "React Example",
            navigation: [
                {menu : "Tutorials"},
                {menu : "Referenece"},
                {menu : "Example"}
            ],
            sns: [
                {icon: "facebook"},
                {icon: "twitter"},
                {icon: "google-plus"}
            ]
		};
	}

	render(){
		return(
			<section className="main">
				<footer>
					<div className="wrap">
						<Component1 propsValue={this.state.logo} />
						<Component2 propsValue={this.state.navigation} />
						<Component3 propsValue={this.state.sns} />
					</div>
				</footer>
			</section>
		);
	}
 }

 export default App;
  • Component2_1.js ~ Component2_3.js
import React, { Component } from 'react';

class Component2_1 extends React.Component {
    render() {
        return (
            <div className='logo'>
                <a href=''>
                    {this.props.propsValue}
                </a>
            </div>
        )
    }
}

export default Component2_1;

import React, { Component } from 'react';

class Component2_2 extends React.Component {
    constructor(props) {
        super();

        this.state= {
            navigationData : props.propsValue
        }
    }

    render() {
        let data = this.state.navigationData;

        let navigationList = data.map((d, i) => <li key={i+1}>
            <a href="">
                {d.menu}
            </a>
        </li>);

        return (
            <div className='navi'>
                <ul>
                    {navigationList}
                </ul>
            </div>
        )
    }
}

export default Component2_2;

import React, { Component } from 'react';

class Component2_3 extends React.Component {
    constructor(props) {
        super();

        this.state = {
            snsData : props.propsValue 
        };
    }

    render() {
        let data = this.state.snsData;

        let snsList = data.map((d, i) => 
        <li key={i+1}>
            <a href='' className={"fa fa-" + d.icon} title={d.icon}></a>
        </li>)

        return (
            <div className='sns'>
                <ul className='clearfix'>
                    {snsList}
                </ul>
            </div>
        );
    }
}

export default Component2_3;
  • 결과

 

728x90

'React' 카테고리의 다른 글

React STEP 27 - jquery + react  (0) 2025.03.04
React STEP 26 - gsap + react  (0) 2025.03.04
React STEP 24 - TODO 리스트 예제  (2) 2025.02.11
React STEP 23 - Create React App - 5  (1) 2025.02.11
React STEP 22 - Create React App - 4  (0) 2025.02.11
'React' 카테고리의 다른 글
  • React STEP 27 - jquery + react
  • React STEP 26 - gsap + react
  • React STEP 24 - TODO 리스트 예제
  • React STEP 23 - Create React App - 5
IT의 큰손
IT의 큰손
IT계의 큰손이 되고 싶은 개린이의 Log 일지
IT의 큰손
Developer Story House
IT의 큰손
전체
오늘
어제
  • 분류 전체보기 (457)
    • 정보처리기사 필기 (18)
    • 정보처리기사 실기 (12)
    • 정보처리기사 통합 QUIZ (12)
    • 빅데이터 (11)
    • 안드로이드 (11)
    • 웹페이지 (108)
    • 자바 (49)
    • SQLD (3)
    • 백준 알고리즘 (76)
    • 데이터베이스 (41)
    • 깃허브 (2)
    • Library (14)
    • Server (31)
    • 크롤링&스크래핑 (3)
    • Spring (23)
    • Vue.js (13)
    • React (27)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Developer Stroy House

인기 글

태그

  • css
  • JavaScript
  • IT자격증공부
  • java
  • 프론트엔드
  • 코딩테스트
  • html
  • 백엔드
  • jquery
  • IT자격증
  • 데이터베이스
  • 정보처리기사
  • 백준
  • DB
  • 알고리즘
  • 자바
  • React
  • 웹페이지
  • 웹개발자
  • 웹개발
  • 개발자
  • it
  • 정보처리기사필기
  • IT개발자
  • DBA
  • jsp
  • 정보보안전문가
  • 개발블로그
  • 앱개발자
  • ajax

최근 댓글

최근 글

Designed By hELLO
IT의 큰손
React STEP 25 - 기본 구조 사용하기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.