JSXλ?
JSX λ?
- JSX(JavaScript XML)λ js μ xmlμ μΆκ°ν νμ₯ λ¬Έλ²μ΄λ€.
- JSXλ 리μ‘νΈλ‘ νλ‘μ νΈλ₯Ό κ°λ°ν λ μ¬μ©λλ―λ‘ κ³΅μμ μΈ μλ°μ€ν¬λ¦½νΈ λ¬Έλ²μ μλλ€.
- λΈλΌμ°μ μμ μ€ννκΈ° μ μ λ°λ²¨μ μ¬μ©νμ¬ μΌλ° jsννμ μ½λλ‘ λ³νλλ€.
// μ€μ μμ±ν JSX μμ
function App() {
return (
<h1>Hello, GodDaeHee!</h1>
);
}
// μμ κ°μ΄ μμ±νλ©΄, λ°λ²¨μ΄ λ€μκ³Ό κ°μ΄ μλ°μ€ν¬λ¦½νΈλ‘ ν΄μνμ¬ μ€λ€.
function App() {
return React.createElement("h1", null, "Hello, GodDaeHee!");
}
- JSXλ νλμ νμΌμ μλ°μ€ν¬λ¦½νΈμ HTMLμ λμμ μμ±νμ¬ νΈλ¦¬νλ€.
JSX λ¬Έλ²
1. λ°λμ λΆλͺ¨ μμ νλκ° κ°μΈλ ννμ¬μΌ νλ€.
- Virtual DOMμμ μ»΄ν¬λνΈ λ³νλ₯Ό κ°μ§ν λ ν¨μ¨μ μΌλ‘ λΉκ΅ν μ μλλ‘ μ»΄ν¬λνΈ λ΄λΆλ νλμ DomνΈλ¦¬ κ΅¬μ‘°λ‘ μ΄λ£¨μ΄μ ΈμΌ νλ€λ κ·μΉμ΄ μλ€.
2. μλ°μ€ν¬λ¦½νΈ ννμ
- JSX μμμλ JSννμμ μ¬μ©ν μ μλ€. μλ°μ€ν¬λ¦½νΈ ννμμ μμ±νλ €λ©΄ JSXλ΄λΆμμ μ½λλ₯Ό {}λ‘ κ°μΈμ£Όλ©΄ λλ€.
- μ ν¨ν λͺ¨λ JSννμμ λ£μ μ μλ€.
3. if(for λ¬Έ) λμ μΌν μ°μ°μ μ¬μ©
- if ꡬ문과 for 루νλ jsννμμ΄ μλκΈ° λλ¬Έμ jsx λ΄λΆ μλ°μ€ν¬λ¦½νΈ ννμμμλ μ¬μ©ν μ μλ€.
- κ·Έλ κΈ° λλ¬Έμ 쑰건λΆμ λ°λΌ λ€λ₯Έ λ λλ§ μ jsxμ£Όλ³ μ½λμμ ifλ¬Έμ μ¬μ©νκ±°λ, {}μμμ μΌν μ°μ°μλ₯Ό μ¬μ©νλ€.
3.1 μΈλΆμμ μ¬μ©νκΈ°
function App() {
let desc = '';
const loginYn = 'Y';
if(loginYn === 'Y') {
desc = <div>GodDaeHee μ
λλ€.</div>;
} else {
desc = <div>λΉνμ μ
λλ€.</div>;
}
return (
<>
{desc}
</>
);
}
3.2 λ΄λΆμμ μ¬μ©
function App() {
const loginYn = 'Y';
return (
<>
<div>
{loginYn === 'Y' ? (
<div>GodDaeHee μ
λλ€.</div>
) : (
<div>λΉνμ μ
λλ€.</div>
)}
</div>
</>
);
}
3.3 AND μ°μ°μ (&&) μ¬μ©
// μ‘°κ±΄μ΄ λ§μ‘±νμ§ μμ κ²½μ° μ무κ²λ λ
ΈμΆλμ§ μλλ€.
function App() {
const loginYn = 'Y';
return (
<>
<div>
{loginYn === 'Y' && <div>GodDaeHee μ
λλ€.</div>}
</div>
</>
);
}
3.4 μ¦μ μ€ν ν¨μ μ¬μ©
function App() {
const loginYn = 'Y';
return (
<>
{
(() => {
if(loginYn === "Y"){
return (<div>GodDaeHee μ
λλ€.</div>);
}else{
return (<div>λΉνμ μ
λλ€.</div>);
}
})()
}
</>
);
}
4. Ract DOMμ HTML μ΄νΈλ¦¬λ·°νΈ μ΄λ¦ λμ camelCase νλ‘νΌν° λͺ λͺ κ·μΉ μ¬μ©
4.1 JSX μ€νμΌλ§
- JSXμμ μλ°μ€ν¬λ¦½νΈ λ¬Έλ²μ μ°λ €λ©΄ {}λ₯Ό μ¨μΌ νκΈ° λλ¬Έμ, μ€νμΌμ μ μ©ν λμλ κ°μ²΄ ννλ‘ λ£μ΄ μ£Όμ΄μΌ νλ€.
- μΉ΄λ© νκΈ°λ²μΌλ‘ μμ±ν΄μΌ νλ€. (font-size => fontSize)
4.2 class λμ className
- μΌλ° HTMLμμ CSS ν΄λμ€λ₯Ό μ¬μ©ν λμλ class λΌλ μμ±μ μ¬μ©νλ€.
- JSXμμλ classκ° μλ className μ μ¬μ©νλ€.
5. JSX λ΄μμ μ£Όμ μ¬μ© λ°©λ²
- jsx λ΄μμ {/* ...*/} μ κ°μ νμμΌλ‘ μ¬μ©
function App() {
return (
<>
{/* μ£Όμμ¬μ©λ°©λ² */}
<div>Hello, GodDaeHee!</div>
</>
);
}
- μμ νκ·Έλ₯Ό μ¬λ¬μ€ μμ± μμλ , λ΄λΆμμ //μ νμμ μ¬μ©ν μ μλ€.
function App() {
return (
<>
<div
// μ£Όμμ¬μ©λ°©λ²
>Hello, GodDaeHee!</div>
</>
);
}