2024. 3. 9. 23:26ㆍWeb/React.js
JSX란
JavaScript에서는 함수가 HTML을 리턴하도록 만들수가 없다.
JS에서 HTML을 리턴하도록 만들면 문법적인 오류로 판단하기 때문에
그래서 React에서는 JSX라는 확장된 자바스크립트 문법을 사용한다.
JSX를 사용하면
이런식으로 JavaScrip와 HTML을 혼용하여 사용할수 있다.
JSX에서는 이런식으로 변수에 데이터를 HTML에 박아넣을수 있다.
이런식으로 삼항연산자를 사용해서도 확용할수 있다.
JSX 주의 사항
- {}중괄호 내부에서는 자바스크립트 표현식만 넣을 수 있다.
ㄴ if 문이나 for문은 사용할 수 없다.
- 숫자, 문자열, 배열 값만 렌더링 된다.
ㄴ null, undefined, true 를 사용하였을때 정상적으로 렌더링되지 않는다.
ㄴ const obj = { a:1 } 형태의 오브젝트를 그대로 렌더링 하려했을때는 오류가 발생한다.
ㄴ 오브젝트 형식의 값을 렌더링 하고싶을때에는 { obj.a } 객체의 값을 넣어주면 정상적인 렌더링이 된다.
- 모든 태그는 닫혀있어야 한다.
ㄴ <img> 이러한 형태로 그대로 마칠경우 에러메세지가 출력된다.
ㄴ <img></img> 형태로 반드시 태그를 닫아야 한다.
- 최상위 태그는 반드시 하나여야만 한다
ㄴ 최상위 레벨에 태그가 두개 이상이 된다면 에러 메세지를 출력한다.
이런식으로 최상위 레벨에 태그가 두개이상이 있으면 안된다.
만약 이렇게 써야한다면
이런식으로 빈태그로 묶어줘도 된다.
HTML 렌더링에 조건 걸기
이런식으로 삼항연산자를 사용해도되고
if문을 사용해도 됩다.
isLogin 값이 true이면 로그아웃을
isLogin 값이 false이면 로그인을 출력하게 된다.
Dom요소에 styil 주기
styil 주는 방법에는 2가지가 있다.
첫번째는 태그에 바로 작성하는 방법이고
(결과)
이런식으로 styil을 주면 되는데
css코드 작성하듯이 background-color, border-bottom 이렇게 작성하면 안된다.
backgroundColor, borderBottom -을 빼고 뒤에 대문자로 표기하는 기법인
카멜 표기법(Camel Case)를 사용해야 한다.
두번째는 css 파일을 만들어 주는 방법이 있다.
Main.css
Main.jsx
이렇게 Main.css를 임포트 해서 사용하면 된다.
JSX에서 class이름을 설정할때 class가 아닌 className을 사용한다
JSX에서는 Javascript와 HTML을 같이 쓰기 때문에 예약어인 class를 사용할 수 없기 때문에
className으로 사용을 한다.
'Web > React.js' 카테고리의 다른 글
[React.js] 이벤트 핸들링 (0) | 2024.03.11 |
---|---|
[React.js] Props로 데이터 전달하기 (2) | 2024.03.10 |
[React.js] 컴포넌트 개념 (0) | 2024.03.09 |
[React.js] React 이론 및 App 생성 방법 (0) | 2024.03.07 |
[React.js] JSX 소개 (0) | 2024.03.04 |