-
[React] 리액트 기초 1 - JSX 기초Web/Javascript 2020. 5. 23. 03:15
HTML
<div id="root"></div>
<div id="name"></div>
<div id="function"></div>
<div id="greet"></div>
<div id="title"></div>
<div id="attr"></div>
<div id="compile"></div>
JS(Babel)
// -> JSX는 자바스크립트 안에서 엘리먼트를 그대로 쓸 수 있게 해 주는 기능.
// <br> 같이 단독으로 사용할 수 있는 태그는 반드시 <br /> 처럼 슬래쉬를 넣어줘야 함.
const element = <h1>Hello,<br />world!</h1>;
// var와 유사, 변수의 값을 할당하면 재할당이 불가능함.
ReactDOM.render(element, document.getElementById('root'));
// 'root' id를 가진 엘리먼트에 'element'를 렌더하겠다.
// 항상 ReactDOM을 통해 렌더링, 그리고 어디에 렌더링 할 지를 지정해 주어야 함.
const element_2 = <h1>Javascript Expression, {1+3} </h1>;
ReactDOM.render(element_2, document.getElementById('root'));
// JSX 안에서는 중괄호{}을 이용해 자바스크립트 표현식이 가능하다.
const name = "KimBangul";
const element_3 = <h1>Hello, {name}</h1>;
ReactDOM.render(element_3, document.getElementById('name'));
// 1. JSX는 자바스크립트 안에서 HTML을 편하게 쓸 수 있는 방법이다.
// 2. 자바스크립트적 요소를 사용하고자 할 때는 중괄호 사용. (중괄호 안에 변수도 사용 가능)
function add10(num){
return num + 10;
}
const element_4 = <h1>함수 결과 : {add10(3)}</h1>;
ReactDOM.render(element_4 , document.getElementById('function'));
// 중괄호 안에 함수도 사용 가능.
function getGreeting(name){
if (name){
return <h1>Hello, {name}</h1>;
}
return <h2>Hello, stranger?</h2>;
}
ReactDOM.render(getGreeting(), document.getElementById('greet'));
// 매개변수 값을 입력하지 않으면 Hello, stranger? 출력
const element_5 =
(
<div>
<h1>Main title</h1>
<h2>Sub title</h2>
</div>
)
;
ReactDOM.render(element_5, document.getElementById('title'));
// JSX에 값을 넣을 때 최상위 엘리먼트는 단 하나여야 함.
// const element = <h1>김방울/h1><h2>박방울</h2> 은 불가능(div 등 상위 엘리먼트로 묶어 주면 중첩 가능)
// <div><h1>Main title</h1><h2>Sub title</h2></div> 처럼 한 줄에 쓰는 게 아니라 여러 줄에 나눠 쓰려면 괄호() 안에 써야 함.
function handleClickEvent(event){
alert(event.target.textContent);
}
// 클릭 시 팝업창 발생
const element_6 = <h1 className="title" onClick={handleClickEvent}>React DOM은 HTML attribute 이름과는 다르게 property이름에 camelCase를 사용한다.</h1>;
ReactDOM.render(element_6 , document.getElementById('attr'));
// 본래 HTML에서는 class="", onclick="" 등으로 사용했으나 JSX에서는 단어와 단어 사이가 이어질 때, 첫 글자는 대문자로 표시(CamelCase)해주어야 함.
// onclick 시 실행될 함수도 큰따옴표가 아니라 중괄호 안에 표시해주어야 함.
function ClickEvent(){
alart('click!');
}
const element_7 = React.createElement(
'h1',
{className: 'title', onClick: handleClickEvent },
'JSX는 Babel에 의해서 React.createElement로 컴파일 된다!'
);
ReactDOM.render(element_7, document.getElementById('compile'));
'Web > Javascript' 카테고리의 다른 글
[React] 리액트 기초 3 - 리액트 props 기초, 리액트로 사각형 만들기 (0) 2020.05.25 [React] 리액트 기초 2 - function 으로 component 만들기, function으로 RoundButton 만들기 (0) 2020.05.24 [jQuery] fadeIn(), fadeOut() 을 이용한 이미지 슬라이드 (0) 2020.05.20 [JQuery] setTimeout, setInterval 을 이용한 타이머 (0) 2020.05.20 [Javascript] 변수, 함수 기초 (0) 2020.05.19