일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- request property
- Git
- scroll 맨 밑 이동
- js XML 읽기
- web recorder
- $.ajax 사용
- dispatcherservlet 오류
- SWEA 6190 python
- MySQL
- js session
- SWEA 1228 python
- GitHub
- SWEA 11315 python
- response property
- scroll 맨 밑
- js canvas
- CSS
- Canvas
- java
- MySQL update delete
- sw8931
- js 객체생성
- 페이지 내 탭
- javascript
- tabs switch
- jQuery EventListener
- scanner bufferedreader
- 탭 활용해 내용바꾸기
- ReactMediaRecorder
- SWEA 1954 java
Archives
- Today
- Total
Daily Pogle
[React] JSX 본문
React 프로젝트 시에는 일반적인 Javascript 코드보다 JSX가 선호되어 사용된다. JSX 란 무엇인가??
JSX 는 JavaScript and XML 를 줄인단어이다. JSX의 의미는 A syntax extension to Javascript, 즉 Javascript 의 확장 문법이다. Javascript 의 확장 문법으로써 Javascript 와 XML/HTML 을 합친 것으로 보면 된다.
간단한 JSX
const element = <h1>Hello, world!</h1>;
h1 이라는 HTML 태그을 Javascript 변수에 저장하고 있다.
Javascript 코드와 JSX 코드 비교하기
다음 아래의 코드들은 같은 기능을 하고 있다.
1. Javascript 문법
const element = React.createEelement(
'h1', // type
{className : 'greeting'}, // props (properties)
'Hello, world!'
)
2. JSX 문법
const element = (
<h1 className="greeting">
Hello, world!
</h1>
)
JSX를 사용하는 코드도 내부적으로는 React.createElement 함수를 사용하고 있다. 또한 React.createElement 함수는 Javascript Object 를 반환한다. React 에서는 이를 Element 라고 부른다
JSX 의 장점
React를 통한 개발시 반드시 JSX가 강제되는 것은 아니지만, JSX를 통해 얻는 장점이 많으므로 JSX가 권장된다.
- 코드가 간결해진다.
- 가독성이 향상되어 유지보수성이 좋아진다.
- Injection Attack 에 대한 보안이 높아진다.
* Injection Attack : 입력창에 소스코드를 입력하여 해당 코드가 실행되도록 하는 공격기법
- ReactDOM 은 렌더링 하기 전에 임베딩(삽입)된 값을 모두 문자열로 변환하기 때문에 명시적으로 선언되지 않은 값은 코드안의 변수값으로 할당될 수 없기에 XSS 등 해킹공격을 막을 수 있다.
JSX 사용하기
- 기본적으로 모든 Javascript 문법을 지원.
- XML/HTML 코드 안에 Javascript 문법을 사용하기 위해서는 중괄호 { } 사용.
const formatName = (name) = {
return name.first + " " + name.last;
};
const name = {
first: pogle,
last: J
};
const element = (
<h1>Hello, {formatName(name)},</h1> // { JS함수(JS객체) }
<h1>{`Hello, ${formatName(name)`}</h1> // 위코드와 같은기능
);
ReactDOM.render(
element,
document.getElementById('root)
);
'프론트엔드 기술 > React' 카테고리의 다른 글
[React] Record API : ReactMediaRecorder (0) | 2023.03.30 |
---|---|
[React] Router 설정 및 페이지 이동 (0) | 2023.03.28 |
[React] useEffect (0) | 2023.03.28 |
[React] useState (0) | 2023.03.27 |
[React] 개요 및 설치. (0) | 2023.03.07 |