render() 에서 구현하는 것은 jsx로 구현해야함(html 아님 -> javascript )
- 반드시 태그는 닫아 주어야함
- 두개 이상의 엘리먼트는 반드시 하나의 엘리먼트로 감싸줘야함(Fragment 사용으로 불필요한 tag rendering 제거 가능)
- 변수의 처리는 중괄호를 사용해서 사용 가능
- 변수 지정에는 var(ES6에서 사용안함), const(상수), let 있음
- if 문을 사용하는 방법은 3항 연산이나 && 구문을 사용 가능(하나의 tag에 여러개 지정 안됨)
- 여러 조건을 지정하기 위해서는 function을 지정해서 가능 ==> 호출('괄호로 닫고')하고 사용해야(괄호로 지정)
- 화살표 함수도 있음
https://react-anyone.vlpt.us/03.html
3편: JSX · GitBook
3편: JSX 리액트 컴포넌트에 대하여 조금 더 자세히 알아봅시다! 컴포넌트 파일 파헤치기 이전에 만든 hello-react 프로젝트를 열어보세요. 다음과 같이 프로젝트가 구성되어 있을 것입니다. 리액트
react-anyone.vlpt.us
import './App.css';
import React, {Component, Fragment} from "react";
class MyApp extends Component {
render() {
const name = 'soul';
let value = 1;
// jsx에서는 이름을 카멜케이스로 입력해야함. value는 문자로
const styleType = {
backgroundColor: 'blue',
padding: '10px',
color: 'yellow',
fontSize: '44px'
};
return (
<Fragment >
외부 css 파일로 style 지정
<div className='App'>
hello {name} !
</div>
3항 연산을 통한 조건문 구현
<div>
{
1 + 3 === 2
? '맞다'
: '틀리다'
}
</div>
하나의 결과만 출력함
<div>
{
name === 'soul' && <div>나는 누구인가?</div>
}
</div>
여러 조건을 사용할 경우
<div>
{
(function () {
if (name === 'soul') return <div>안녕 {name} ~~~</div>
if (name === '나는') return <div>333</div>
if (name === '뭐지') return <div>444</div>
return <div>해당 없음</div>
})()
}
</div>
내부에서 style 지정, 괄호 함수 사용
<div style={styleType}>
{
(() => {
if (value === 1) return <div>1111</div>
if (value === 2) return <div>2222</div>
if (value === 3) return <div>3333</div>
return <div>해당 없음</div>
})()
}
</div>
</Fragment>
);
}
}
export default MyApp;
'React' 카테고리의 다른 글
04. react : props, state (0) | 2023.01.31 |
---|---|
01. React 기본 개념-Virtual DOM (0) | 2023.01.31 |
02. React 프로젝트 생성-intellij (0) | 2023.01.30 |
00. React 환경 설정 등 (0) | 2023.01.29 |