728x90
π JSX λ?
- JavaScript XML μ μ€μλ§
- JS μ½λ μμμ HTML κ°μ λ¬Έλ²μ μΈ μ μκ² ν΄μ€
- λΈλΌμ°μ κ° μ§μ μ΄ν΄νλ 건 μλ.
- React κ° JS μ½λλ‘ λ³νν΄μ μ€νν¨
- JSXλ₯Ό μ¬μ©νλ©΄ React μμ HTML μ μμ±νκ³ μΆκ°νλ κ² μ¬μμ§.
π 리μ‘νΈμμ JSXλ₯Ό μΈ λ, νκ·Έμ class λ₯Ό λ£κ³ μΆμΌλ©΄??
- className μ΄λΌκ³ μ μ΄μ€μΌν¨!!
- const myElement2 = (
<>
<p className="aaa">μ¬κ³Ό</p>
<p className="bbb">κ·€</p>
<p className="ccc">ν¬λ</p>
</>
); - κΌ!! μ΅μμ μμκ° νκ°μ¬μΌν¨!! block ννλ‘ λκ° λ¬Άλ λλμ!! κΌ λν±μ΄λ‘ νλ²μ μμ§μΌ μ μκ² μ²λ¦¬ν΄μ€μΌνλ λλ!!
- λ§μ½ μ΅μμ μμλ‘ μΈ κ² μ ν μμΌλ©΄ <> </> μ²λ¦¬ λΌλ ν΄μ€μΌν΄!!
π JSX μμμ ννμ μ¬μ©
- const myElement = <h1 className="aaa">5 + 5 = {5+5}</h1>;
- JSXμμλ { ~~~ } λ‘ ννμμ μ¬μ©ν¨.
// import React from 'react';
// import { createRoot, creatElement } from 'react-dom/client';
// const myElement = React.createElement('h1', {}, 'JSX μ¬μ©νμ§ μμμ΄μ');
import { createRoot } from 'react-dom/client';
//const myElement = <h1>JSXλ₯Ό μ¬μ©ν¨</h1>;
const myElement = <h1 className="aaa">5 + 5 = {5+5}</h1>;
// μ΅μμ μμλ νκ°λ§ μμ΄μΌν¨..
const myElement2 = (
<>
<p className="aaa">μ¬κ³Ό</p>
<p>κ·€</p>
<p>ν¬λ</p>
</>
);
function Intro() {
const name = 'μ μ°μΉ';
return (
<>
<h1>νμ΄λ£¨</h1>
<p>λλ {name}μΌ</p>
</>
)
}
createRoot(document.getElementById('root')).render(
//myElement2
<Intro /> // 리μνΈμμλ μ»΄ν¬λνΈλ‘ λκΈΈμλ μμ.
);
π JSX ννμ
- ννμ μμμ μ°μ°μ ν μ μμ.
- ννμ μμμ λ€λ₯Έ ν¨μλ₯Ό νΈμΆν΄μ κ°μ κ°μ Έμ¬ μλ μμ.
- ννμ μμμ κ°μ²΄λ₯Ό κΊΌλ΄μμ μΈ μλ μμ.
- // νκ·Έμ μ§μ style μ λ£λ κ²½μ°λ --> μλ°μ€ν¬λ¦½νΈ κ°μ²΄μ νν λ‘λ§ νμ©λ¨.
function Money() {
const m = 5 * 1000;
return (
<>
<h1>λ΄ μ§κ°μλ</h1>
<p>{ getMoney(7) } μμ΄ μμ΄μ.</p>
</>
);
}
function getMoney(won) {
return won * 1000;
}
function Human() {
const kildong = {
name : "νκΈΈλ",
age : "22",
address : "μμΈ"
}
const a = "title";
const myFunc = () => {
alert("μλ
νμΈμ");
}
// νκ·Έμ μ§μ style μ λ£λ κ²½μ°λ --> μλ°μ€ν¬λ¦½νΈ κ°μ²΄μ νν
λ‘λ§ νμ©λ¨.
const style1={ // css μμ±λ€μ λν΄μλ μΉ΄λ©νκΈ°λ²μΌλ‘ μμ±ν΄μΌλ¨.
color : "red",
fontSize : "small",
backgroundColor : "yellow"
}
return (
<>
<p className={a} onClick={myFunc}>{kildong.name} μ {kildong.age} μΈ μ΄κ³ , {kildong.address}μ μ΄μμ</p>
<button onClick={myFunc} disabled={true}>λ²νΌ</button>
<p style={style1}>μλ
νμλκΉ</p>
</>
);
}
π JSX λ΄λΆμμλ if λ¬Έ μ§μ μν¨!!
- λ°©λ² 1 :: if 쑰건문μ JSXμΈλΆμ λ¬μΌν¨.
- λ°©λ² 2 :: μΌν ννμ μ¬μ©.
function ChkAdult(){
const age = 30;
let generation;
console.log(generation); // undefined
// λ°©λ² 1 :: JSX λ°μμ ifλ¬Έ λ리기
if( Math.floor(age / 10) >= 3 ){
generation = Math.floor(age / 10) + "0λ μ΄μ";
console.log(generation);
}
return ( // μ¬κΈ° λΆλΆμ΄ JSX !!
<> {/* λ°©λ² 2 :: μΌνμ°μ°μ μ¬μ©νκΈ° */}
<p>λΉμ μ { (age > 19) ? "μ±μΈ" : "λ―Έμ±λ
μ" } μ
λλ€. </p>
<p>λΉμ μ { generation }μ
λλ€. </p>
</>
);
}

μΆμ² :
[μμ΄λ³΄ ννμ΄μ§λ§λ€κΈ° 리μ‘νΈ κΈ°μ΄ μ νλΈ κ°μ]
https://www.youtube.com/watch?v=AmBAgN0-AIU&list=PLTb3qGCzYjS2AliTIbz9eAGjZSdEQa3m1&index=14
κ°λ° 곡λΆλ₯Ό μν λΈλ‘κ·Έ μ λλ€.
μ€λ₯κ° μλ€λ©΄ λκΈλ‘ μλ €μ£ΌμΈμ!
κ°μ¬ν©λλ€.

728x90
'front > react' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| [react] css μ¬μ© κ΄λ ¨ (inline css, css obj, import css, import css module, composes, global css className) (1) | 2026.01.02 |
|---|---|
| [react] createPortal, Suspense (0) | 2026.01.01 |
| [React] μ΄λ²€νΈ νΈλ€λ¬ (0) | 2026.01.01 |
| [react] μ»΄ν¬λνΈ, Props μ λν΄μ... (0) | 2025.12.28 |
| [ES6] κΈ°μ΄ μ 리 (0) | 2025.12.27 |