ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • React - Component - 1
    Front-end/React 2023. 4. 26. 22:26
    728x90
    반응형

    React Component

    React Component UI를 재사용 할 수 있도록 개별적으로 여러 조각으로 나누는 단위이다.

    component함수로 생성해서 사용할 수 있다.

    /* App.css */
    
    .modal {
      margin-top: 20px;
      padding: 20px;
      background: #eee;
      text-align: left;
    }
    // App.js
    
    /* eslint-disable */
    
    import logo from './logo.svg';
    import './App.css';
    import { useState } from 'react';
    
    // App() 또한 컴포넌트이다.
    function App() {
    
      let post = 'Restaurant';
      let postId = 'postId';
      let [title, setTitle] = useState(['Title1', 'Title2', 'Title3']);
      let [blogTItle, setBlogTitle] = useState('ReactBlog');
      let [like, changeLike] = useState(0);
    
      return (
        <div className="App">
          <div className="black-nav">
            <h4 id={postId} style={{ color: 'red', fontSize: '16px' }}>{blogTItle}</h4>
          </div>
    
          <button onClick={() => {
            let copy = [...title];
            copy[0] = 'New Title1';
            console.log('title: ' + title);
            console.log("copy: " + copy);
            console.log(copy === title);
    
            setTitle(copy);
          }}>Edit</button>
    
          <div className="list">
            <h4>{title[0]} <span onClick={() => { changeLike(like + 1) }}>❤</span> {like} </h4>
            <p>4월 26일</p>
          </div>
          <div className="list">
            <h4>{title[1]}</h4>
            <p>4월 26일</p>
          </div>
          <div className="list">
            <h4>{title[2]}</h4>
            <p>4월 26일</p>
          </div>
    
    	  {/* 함수로 생성된component를 적용할 때 태그로 불러와 적용한다. */}
          <Modal></Modal>
        </div>
      );
    }
    
    // 함수표현식으로 component 선언
    const Modal2 = () => {
      return (
        <div className='modal'>
          <h4>제목</h4>
          <p>날짜</p>
          <p>상세내용</p>
        </div>
      );
    }
    
    // 함수선언식으로 component 선언
    function Modal() {
      return (
        <div className='modal'>
          <h4>제목</h4>
          <p>날짜</p>
          <p>상세내용</p>
        </div>
      );
    }
    
    export default App;

     

    함수component생성 한 후 return() 안에 html코드를 적어서 <함수명></함수명> 또는 <함수명 /> 태그를 사용하여 컴포넌트를 적용할 수 있다.

     

    컴포넌트 return 안에는 하나의 태그로 묶어줘야한다.

    function Modal() {
      return (
      
        <div className='modal'>
          <h4>제목</h4>
          <p>날짜</p>
          <p>상세내용</p>
        </div>
        
        // 하나의 태그로 감싸져있지 않아서 에러가 나타난다.
        <div></div>
      );
    }

     

     

     

    반응형

     

     

     

    만약 2개의 태그를 사용하고 싶을때는 fragment 문법을 사용해서 빈 태그<> 를 만들어 사용할 수 있다.

    function Modal() {
      return (
      	// fragment 문법으로 두개의 태그가 존재할 수 있다.
        <>	
          <div className='modal'>
            <h4>제목</h4>
            <p>날짜</p>
            <p>상세내용</p>
          </div>
          <div></div>
        </>
      );
    }

     

    728x90
    반응형

    'Front-end > React' 카테고리의 다른 글

    React - Component - 3  (0) 2023.04.27
    React - Component - 2  (0) 2023.04.26
    React - useState - 3  (0) 2023.04.26
    React - useState - 2  (0) 2023.04.26
    React - useState - 1  (0) 2023.04.26
Designed by Tistory.