반응형
CONTENTS
- 필수 컴포넌트 return 규칙
- JSX 변수 선언
- JSX 조건문
- 인라인 CSS 스타일
- 태그의 class 이름
1. 필수 컴포넌트 return 규칙
하나의 태그
- 컴포넌트의 경우 return 값 내부는 하나의 최상위 태그 <> </>로 감싸져 있어야 한다.
- v.16 이전 버전에서는 <div></div>로 감싸는 경우가 많고
- v.16 이후 버전부터는 <Fragment></Fragment> 사용이 가능하다. 이는 <></> 로 축약해서 사용할 수 있다.
- 한편, return 안의 괄호()는 필수가 아니다.
/* src/App.js */
import React from 'react';
function App() {
return(
<Fragment>
<h1> 하나로 감싸주이소 </h1>
<p> 안해주면 에러나요 </p>
</Fragment>
);
}
export default App;
undefined 렌더 방지
- undefined 값이 return되어 렌더링이 되는 경우를 방지
- 이 경우 || (OR 연산자)로 디폴트 값이 대신 나가도록 코드 써주기를 권장
import React from 'react';
function App(){
const isTrue = undefined;
return (isTrue || '값이 undefined입니다');
}
export default App;
2. JSX 변수선언
- const : 바뀌지 않는 값(상수) 선언시
- let : 값이 바뀌는 변수 선언시
※ var 는 변수의 생존범위가 넓은 편이고 오버라이팅(변수중복선언)시에도 기존에 선언된 값을 가지고 있을 수 있으므로 가급적 쓰지 않는다.
※ if문 안에서 let으로 선언된 변수는 if문 블록 밖으로 빠져나가지 않는 한 편, var로 선언된 변수값은 if 블록 밖에서도 유효하다.
import React from 'react';
function App(){
const name = '윌스미스';
let sales = 100000;
return <h1>{name}, {sales}</h1>;
}
export default App;
3. JSX 조건문
JSX 외부 조건문 if
- 컴포넌트 return 내부에선 if 사용 불가능
- 컴포넌트 return 밖에서만 if 사용 가능
function MyComponent(){
if(true){
return(<div>참 리턴</div>)
}else{
return(<div>거짓 리턴</div>)
};
}
JSX 내부 조건문1 | 삼항연산자
- 컴포넌트 return문 내부에서 사용할 수 있는 조건문 중 하나. 조건부 연산자
- 기본형은 { 판단용 변수 === '값' ? (참 리턴값) : (거짓 리턴값) }
function App(){
const age = 10;
return(
<div>
{ age === 10? (
<p>어리시네요</p>
):(
<p>몇 살이세요?</p>
)}
</div>
);
}
JSX 내부 조건문2 | && (AND연산자)
- AND 연산자인 &&도 컴포넌트 return 값 안에 쓸 수 있다.
- && 연산자는 false의 return 값이 null인 경우에 사용한다 (아무것도 렌더링하지 않음을 의미)
- 기본형은 { 변수 === ‘값’ && 참 리턴값 }
function App(){
const age = 19;
return (
<div>
{ age >= 19 && <p>성인인증 완료</p> }
</div>
);
}
4. 인라인 CSS 스타일
CSS 공통 문법 규칙
- “카멜 표기법”으로 변경 : 기존 CSS 문법에서 대쉬(-)를 빼고 뒷 단어의 첫 알파벳을 대문자로 바꿔줌
(예) background-color => backgroundColor
- 사이즈 단위를 생략하면 픽셀(px)이 됨
객체 변수로 선언후 사용
function App(){
const myStyle = {
backgroundColor : ‘red’,
fontSize : 18
}
return (
<div style={myStyle}>
.....
</div>
);
}
태그 안에 바로 써주는 방식
function App(){
return (
<div style={{
backgroundColor: ‘black’,
color: ‘aqua’,
fontSize: ‘48px’,
padding: 16
}}>
......
</div>
);
}
5. 태그의 class 이름
- HTML 객체 태그들의 클래스는 기존의 class가 아닌 className 으로 표기한다
<div className=“클래스이름”>
...
</div>
6. JSX 내부 주석 달기
- 기본형태: {/* 주석내용 */} 중괄호 포함, 이 형태로 써줘야 함
- JSX 본 코드에 // 나 /* */ 로 쓰면 화면에 그대로 노출됨
- 예외적으로, 시작 태그 내에서만 코드 뒤에 // 주석을 쓸 수 있지만
import React from 'react';
function App(){
const greeting = 'Hi';
return(
<div
className = "firstDiv" // 예외적으로 허용되는 시작태그 내 주석
>
{/* 주석은 이렇게 쓰세요 */}
</div>
);
}
export default App;
** 꼭! 태그 닫기 **
JSX에선 일반 HTML과 다르게 열린채로 남겨진 태그는 큰 확률로 오류가 난다. 따라서 닫는 태그를 잊지 말고 써줘야 한다. 한편 <br>, <input> 등과 같이 태그만 넣고 그 사이에 별 내용이 들어가지 않는 경우에는 <br />, <input /> 과 같이 self-closing 형태로라도 닫아준다.
반응형
'React' 카테고리의 다른 글
React 리액트 이벤트 핸들러들 (0) | 2022.08.31 |
---|---|
React 리액트 state 기본 사용법 (0) | 2022.08.21 |
VS Code 들여쓰기 자동맞춤 Prettier | 코드 포매터 (0) | 2022.08.18 |
VS Code 리액트 오류 검사 도구 ESLint (0) | 2022.08.18 |
React.js 리액트 설치하기 Windows 10 (0) | 2022.08.17 |