관리 메뉴

공부기록용

React입문 1주차(JSX) 본문

📚강의록📚/스파르타)React

React입문 1주차(JSX)

과부하가즈아 2023. 6. 24. 20:09

JSX란

JavaScript를 확장한 문법으로 JavaScript의 모든 기능이 포함되어 있으며, React Element를 생성하기 위한 문법이다.

기본적으로 return문 안에 존재하며 JSX 문법을 사용해서 React 요소를 만들고 DOM에 렌더링 시켜서 그린다.

(-> 우리가 실질적으로 코드를 작성하는 App.js를 index.js에서 createRoot를 한 다음에 render한다. 만들어 놓은 App.js를 React에서 render를 하면서 화면에 그려나가는 것이다._render하면서 DOM에 렌더링을 시키는 것이다.)

HTML을 품은 JS ⇒ JSX

아래 같은 HTML 태그는 .js 파일 안에서 쓸 수 없다.
<div>
	<h1>안녕하세요!</h1> 
	<p>시작이 반이다!</p>
</div>​

 
자바스크립트 안에서 html 태그같은 마크업을 넣어 뷰(UI) 작업을 한다.

const start_half = <div>
    <h1>안녕하세요!</h1>
    <p>시작이 반이다!</p>
  </div>;


JSX에서 쓰는 <div>~~</div>는 DOM 요소가 아닌 정확히는 React 요소이다.
리액트 돔을 구성하는 건 리액트 요소! 돔을 구성하는 건 돔 요소이다


react snipet
// rfc
import React from 'react'

export default function App() {
  return (
    <div>App</div>
  )
}

// rfce
import React from 'react'

function App() {
  return (
    <div>App</div>
  )
}

export default App

import React from 'react'

export default function App() {
  const a = 7;
  const b = 10;

  return (
    <div>
      <input type="text"/>
      <div>안녕하세요 {a+b}입니다.</div>
    </div>
  )
}


삼항연산자 사용해보기

import React from 'react'

export default function App() {
  const number = 1;

  return (
    <div>
      <p>안녕하세요 리엑트입니다.</p>
      {/* 주석을 사용하는 방법 */}
      {/* 삼항연산자를 사용해 볼게요 */}
      <p>{
        number > 10 ?           // number이 10보다 크다는 조건이
          number + '은 10보다 크다'  // 참일 경우
          : number + '은 10보다 작다' // 거짓인 경우
      }
      </p>
    </div>
  )

}


class 지정과 style속성 지정해보기

class가 아닌 className로 지정 하는거 기억하기

{ }안에 js 속성을 넣을 수 있고 객체{ }로 넣어줘야해서 이중인 점 기억하기

import React from 'react'

export default function App() {
  const number = 1;

  return (
    // <div class = "test-class"> 이렇게 class를 지정하고 싶을때 class가 아닌 className로 지정해야함
    <div className="test-class">
      <p>안녕하세요 리엑트입니다.</p>
      {/* 주석을 사용하는 방법 */}
      {/* 삼항연산자를 사용해 볼게요 */}
      <p style={{
        color: "red",
      }}>
        {
          number > 10 ?           // number이 10보다 크다는 조건이
            number + '은 10보다 크다'  // 참일 경우
            : number + '은 10보다 작다' // 거짓인 경우
        }
      </p>
    </div>
  )

}

style속성 변수로 지정해서 적용해주기(변수로 지정해줌으로써 재사용이 가능해진다.)

import React from 'react'

export default function App() {
  const number = 1;

  const pTagStyle = {
    color: "red",
  }

  return (
    // <div class = "test-class"> 이렇게 class를 지정하고 싶을때 class가 아닌 className로 지정해야함
    <div className="test-class">
      <p>안녕하세요 리엑트입니다.</p>
      {/* 주석을 사용하는 방법 */}
      {/* 삼항연산자를 사용해 볼게요 */}
      <p style={pTagStyle}>
        {
          number > 10 ?           // number이 10보다 크다는 조건이
            number + '은 10보다 크다'  // 참일 경우
            : number + '은 10보다 작다' // 거짓인 경우
        }
      </p>
    </div>
  )

}

Comments