A syntac extension to JavaScript
자바스크립트의 확장 문법
👉 JavaScript and XML
const element = <h1>Hello, world!</h1>
h1 태그로 둘러싸인 문자열을 element라는 변수에 저장
JSX는 내부적으로 XML/HTML 코드를 자바스크립트로 변환하는 과정을 거침
그래서 실제로 JSX로 코드를 작성해도 최종적으로는 자바스크립트 코드가 나옴.
JSX 코드를 자바스크립트 코드로 변환하는 리액트 함수.
class Hello extends React.Component {
render() {
return <div>Hello {this.props.toWhat}</div>;
}
}
ReactDOM.render(
<Hello toWhat="World"/>,
document.getElementById('root);
);
class Hello extends React.Component {
render() {
return React.createElement('div', null, `Hello ${this.props.toWhat}`);
}
}
ReactDOM.render(
React.createElement(Hello, { toWhat: 'World'}, null),
document.getElementById('root);
);
JSX를 사용하지 않고 순수자바스크립트로 동일한 역활을 하게 할수는 있지만, JSX를 사용하면 코드가 더욱 간결해지고 생산성과 가독성이 올라가기 때문에 권장.
Injection Attack은 소스코드를 입력하여 해당 코드가 실행되도록 만드는 해킹 방법
<div>Hello, {name}</div>
React.createElement('div', null, `Hello, ${name}`);
JSX에서는 중괄호를 사용하면 무조건 자바스크립트 코드가 들어감
const element = <div tabIndex="0"></div>;
const element = <img src={user.avatarUrl}></img>;
큰 따옴표사이에 문자역을 넣거나 중괄호 사이에 자바스크립트 코드를 넣음
💻 소플의 처음만난 리액트