FrontEnd/React
JSX란?
BlancPong
2022. 7. 7. 14:46
728x90
이름을 보면 javascript 와 관련이 있어 보인다.
JSX를 풀어 해석해보면
A syntax extension to Javascript = 자바스크립트의 확장문법
JSX 구성
Javascript + XML/HTML
JSX 코드
const element = <h1>Hello, world!</h1>;
JSX의 역할
내부적으로 XML + HTML를 자바스크립트로 변화하는 과정
// JSX를 사용한 코드
const element = (
<h1 className="greeting">
Hello, world!
</h1>
)
// JSX를 사용하지 않은 코드
const element = React.createElement(
'h1',
{ className: 'greeting' },
'Hello, World!'
)
위 2코드는 결과가 같다.
JSX를 사용시 장점!
- 가독성이 올라간다.
-Injection Attacks 방어하면서 보안이 좋아진다.
JSX작성중에 중간에 javascript를 사용하고 싶을때
const name = '소플';
const element = <h1>안녕, {name}</h1>
ReactDOM.render(
element,
document.getElementById('root')
);
위와 같이 {} 중괄호를 사용하면 된다.
JSX에서 태그의 속성(attribute)에 어떻게 값을 넣을까요?
// 큰따옴표 사이에 문자열을 넣거나
const element = <div tabIndex="0"></div>;
// 중괄호 사이에 자바스크립트 코드를 넣으면 됩니다.
const element = <img src={user.avatarUrl}></img>;