JSX

πŸ€” What is JSX(Java Script XML)

  • HTMLκ³Ό μœ μ‚¬ν•œ λ§ˆν¬μ—…μ„ μž‘μ„±ν•  수 μžˆλŠ” JavaScript의 ꡬ문확μž₯μžμ΄λ‹€.

  • JavaScript μ½”λ“œ μ•ˆμ—μ„œ HTMLκ³Ό λΉ„μŠ·ν•œ ꡬ문을 μ‚¬μš©ν•  수 있게 ν•΄μ€€λ‹€.

JSX λ₯Ό ν™œμš©ν•˜λ©΄ μ•„λž˜μ™€ 같은 μž‘μ—…μ΄ κ°€λŠ₯ν•˜λ‹€.

  • HTMLκ³Ό 같은 μœ μ‚¬ν•œ λ§ˆν¬μ—… μ½”λ“œ μž‘μ„± κ°€λŠ₯

  • JavaScript ν‘œν˜„μ‹ μ‚½μž…μ΄ κ°€λŠ₯ν•˜μ—¬, λ§ˆν¬μ—… λ‚΄μ—μ„œ 동적 μ½˜ν…μΈ μ™€ JavaScript μ½”λ“œ μ‹€ν–‰ κ°€λŠ₯

  • μž¬μ‚¬μš© 및 독립적인 UI쑰각

μ•„λž˜μ˜ μ½”λ“œλŠ” HTML, JavaScriptκ°€ μ•„λ‹Œ .jsx 파일 μ•ˆμ— μ •μ˜λœ μ½”λ“œμ΄λ‹€.

const element = <h1>Hello, world!</h1>;

Reactμ—μ„œλŠ” HTMLκ³Ό λ‘œμ§μ„ λΆ„λ¦¬ν•˜λŠ” λŒ€μ‹ , 이 λ‘˜μ„ ν¬ν•¨ν•˜λŠ” μ»΄ν¬λ„ŒνŠΈ(Component) 라고 λΆ€λ₯΄λŠ” UI쑰각을 λ§Œλ“€κ³  μ‘°ν•©ν•œλ‹€

⚑️ JSX 의 νŠΉμ§•

1. HTML μœ μ‚¬ ꡬ문

const element = <h1>Hello, JSX!</h1>;

2. JavaScript ν‘œν˜„μ‹

JSXλ₯Ό μ‚¬μš©ν•˜λ©΄ μ€‘κ΄„ν˜Έ({}) μ•ˆμ— js ν‘œν˜„μ‹μ„ μ‚½μž…ν•  수 μžˆλ‹€. 이λ₯Ό 톡해 동적 μ½˜ν…μΈ λ₯Ό λ§ˆν¬μ—…μ— ν¬ν•¨ν•œλ‹€.

JSXλŠ” HTMLκ³Ό μœ μ‚¬ν•΄ UI ꡬ쑰와 μœ μ‚¬ν•œ λ°©μ‹μœΌλ‘œ νƒœκ·Έμ™€ 속성을 μž‘μ„±ν•  수 μžˆλ‹€.

3. 일반적으둜 React κ΅¬μ„±μš”μ†Œμ™€ ν•¨κ»˜ μ‚¬μš©

  • Reactμ—μ„œλ§Œ μ‚¬μš©λ˜λŠ” 것이 μ•„λ‹ˆλ©°, JSX만 λ…λ¦½μ μœΌλ‘œλ„ μ‚¬μš©ν•  수 μžˆλ‹€.

μ•„λž˜λŠ” Reactμ—μ„œ Greeting μ΄λΌλŠ” μ»΄ν¬λ„ŒνŠΈμ— λŒ€ν•œ 예제 μ½”λ“œμ΄λ‹€.

JSXλŠ” λ³€ν™˜μ΄ ν•„μš”ν•˜λ‹€

  • JSX μ½”λ“œλŠ” λΈŒλΌμš°μ €μ—μ„œ 직접 μΈμ‹λ˜μ§€ μ•Šμ•„, JavaScript μ½”λ“œλ‘œ λ³€ν™˜ν•΄μ•Ό ν•œλ‹€.

  • λ³€ν™˜μ— μ‚¬μš©λ˜λŠ” 도ꡬ μ€‘μ˜ ν•˜λ‚˜κ°€ Babel 이며, 이것은 JSXλ₯Ό JavaScript μ½”λ“œλ‘œ μ»΄νŒŒμΌν•˜λŠ”λ° μ‚¬μš©λœλ‹€.

  • 컴파일이 λλ‚˜λ©΄ JSX ν‘œν˜„μ‹μ΄ μ •κ·œ JavaScript ν•¨μˆ˜ 호좜이 되고, JavaScript의 객체둜 μΈμ‹λœλ‹€.

Babel μ—μ„œ ν…ŒμŠ€νŠΈ 해보기

  1. Try it out -> PRESETS -> react 체크

  2. OPTIONS -> React Runtime 의 Classic / Automatic 쀑 ν•˜λ‚˜ 선택

  3. Babel λ³€ν™˜κΈ° ν•˜λ‹¨μ˜ Add Plugin λ²„νŠΌμ„ 클릭

  4. @babel/plugin-transform-react-jsx 검색 ν›„ 선택

Last updated