-
React : JSXPROGRAMMING/React 2021. 3. 20. 02:19
JSX λ?
리μ‘νΈμμ μ»΄ν¬λνΈλ₯Ό μμ±ν λ μ¬μ©νλ, JavaScript λ₯Ό νμ₯ν λ¬Έλ².
JSX λ₯Ό λ€λ£° λ κΈ°μ΅ν΄μΌ ν κ²μ, JSX λ ννμμ΄λΌλ κ²μ΄λ€.
κ·Έλμ λ³μμ ν λΉνκ³ , μΈμλ‘ λ°μλ€μ΄κ³ , ν¨μλ‘ λ°ννκ³ , ννμμ ν¬ν¨ν μ μλ€.
λ³μμ ν λΉνκΈ°
κ°μ₯ κΈ°λ³Έμ μΈ ννμ΄λ€.
const element = <h1>Hello, world!</h1>;
κ·Έ μμ²΄λ‘ ννμμ΄κΈ° λλ¬Έμ λΉμ°ν λ³μμ ν λΉν΄μ μ¬μ©ν μ μλ€.
μ΄λ κ² μμ±ν JSX λ React "Element" λ₯Ό μμ±νλ€.
ννμ ν¬ν¨νκΈ°
JSX λ JavaScript ννμμ ν¬ν¨ν μ μλ€.
const name = 'react'; const element = <div>hello {name}!</div>; const element2 = <div>hello {userFunc(name)}!</div>; const element3 = <div>hello {2+2}!</div>;
μμ μμμ²λΌ, JavaScript μ μ ν¨ν λͺ¨λ ννμμ {} (μ€κ΄νΈ) κ°μΈμ μ¬μ©ν μ μλ€.
λν, μμ±μ λ°μ΄νλ₯Ό μ΄μ©νμ¬ λ¬Έμμ΄ λ¦¬ν°λ΄μ μ μν μ μλ€.
const element = <div userIndex="0"></div>;
λ¨, μμ λ λ°©μμ μμ΄μ μ°μ§ μλλ‘ μ£Όμν΄μΌ νλ€.
(κ°λ Ή, μ€κ΄νΈ μ£Όλ³μ λ°μ΄νλ₯Ό μ λ ₯νλ κ²μ κΈμ§λλ€.)
μ¦ μ€κ΄νΈ (ννμμ μ¬μ©) κ³Ό λ°μ΄ν (λ¬Έμμ΄ κ°μ μ¬μ©) λ₯Ό λμΌν μ΄νΈλ¦¬λ·°νΈμ λμμ μ¬μ©νλ©΄ μλκ³ , νλλ§ μ¬μ©ν΄μΌ νλ€.
λͺ κ°μ§ μ€μν κ·μΉ
JSX λ μΌν 보기μλ html κ°μ§λ§, JavaScript μ΄λ€.
HTML κ³Ό λΉμ·ν λ¬Έλ²μΌλ‘ μμ±νλ©΄ μ΄λ₯Ό λ΄λΆμ μΌλ‘ Javascript ννλ‘ λ³νμμΌμ€λ€. λ³νμ μν΄ μ§μΌμΌ ν μ€μν κ·μΉμ΄ μλλ°,
- νκ·Έλ κΌ λ«νμμ΄μΌ νλ€. (br νκ·Έ λ± μ£Όμ)
- λ κ° μ΄μμ Element λ 무쑰건 νλμ Element λ‘ κ°μΈμ Έμμ΄μΌ νλ€.
(λ¨μν μ΄λ₯Ό μν΄ div λ₯Ό μ°κΈ° μνμ§ μλλ€λ©΄ Fragment λ‘ κ°μΈμ£Όμ. λ¨, 16.2 λΆν° λμ λ Fragment κΈ°λ₯!)
<div> //<Fragment> <div> Hello </div> <div> Bye </div> </div> //</Fragment>
λν, JSX λ HTML λ³΄λ€ JavaScript μ κ°κΉμ°λ, camelCase νλ‘νΌν° λͺ λͺ κ·μΉμ μ¬μ©νλ€.
HTML μμλ onclick λ‘ μμ±νλ κ²μ onClick λ‘ μμ±ν΄μΌμ§ μ€λ₯κ° λμ§ μλλ€.
κΆμ₯ μ¬ν
- κ°λ μ±μ μν΄ μ€ λ°κΏ
- μλ μΈλ―Έμ½λ‘ μ½μ λ°©μ§λ₯Ό μν΄ κ΄νΈλ‘ λ¬ΆκΈ°
const element = ( <h1> Hello, {userFunc(name)}! </h1> );
Ref.
React 곡μ λ¬Έμ ko.reactjs.org/docs/introducing-jsx.html
.
'PROGRAMMING > React' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
React :: Hook, useState, useEffect, μ¬μ©μ μ μ Hook (0) 2021.03.31 React :: μλͺ μ£ΌκΈ° (Lifecycle) (0) 2021.03.21 React :: Component, Props, State (0) 2021.03.20 React :: Element Rendering (μ리먼λ λ λλ§) (0) 2021.03.20 React :: React μμνκΈ° (0) 2021.03.20