Svelte

Svelte - Basic

2020. 12. 26. 19:09
๋ชฉ์ฐจ
  1. ๐Ÿ“Œ ๋ชฉ๋ก
  2. ๐Ÿ“Œ Introduction
  3. ๐Ÿ“Œ Adding Data
  4. ๐Ÿ“Œ Dynamic Attribute
  5. ๐Ÿ“Œ Styling
  6. ๐Ÿ“Œ Nested components
  7. ๐Ÿ“Œ HTML tags
  8. ๐Ÿ“Œ Conclusion
  9. ๐Ÿ“Œ Reference
๋ฐ˜์‘ํ˜•

๐Ÿ“Œ ๋ชฉ๋ก

  • Introduction
  • Adding Data
  • Dynamic Attribute
  • Styling
  • Nested components
  • HTML tags
  • Conclusion
  • Reference

๐Ÿ“Œ Introduction

์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜์€ ์ง€๋‚œ๋ฒˆ์— ์ด์–ด svetle์— ๊ธฐ๋ณธ์ ์ธ ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ํ•œ๋ฒˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ๋ถ€๋ถ„ vue์—์„œ ์˜ํ–ฅ์„ ๋ฐ›์€ ๊ฒƒ ๊ฐ™์€ ๋А๋‚Œ์ด ๋“œ๋„ค์š”.

๐Ÿ“Œ Adding Data

์ผ๋‹จ ๊ฐ„๋‹จํ•˜๊ฒŒ hello world์„ ๊ทธ๋ ค๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

<script>
    let name = "world";
    name = name.toUpperCase();
</script>
<h1>Hello {name}</h1>

์—ฌ๊ธฐ์„œ ์‹ ๊ธฐํ•œ๊ฑด ์ด๋ ‡๊ฒŒ ํ•ด๋„ ๋™์ผํ•˜๊ฒŒ ๋™์ž‘์„ ํ•ฉ๋‹ˆ๋‹ค.

<h1>Hello {name}</h1>
<script>
    let name = "world";
    name = name.toUpperCase();
</script>

์œ„์น˜๋Š” ๋”ฑํžˆ ์ƒ๊ด€์ด ์—†์–ด๋ณด์—ฌ์š”. ์ด๊ฑธ ํ† ๋Œ€๋กœ ๋ˆˆ์น˜๋ฅผ ์ฑŒ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์€ ๋‹จ์ˆœ javascript ํ˜•์‹์œผ๋กœ๋งŒ compile์„ ํ•˜๋Š”๊ฒŒ ์•„๋‹Œ๊ฑฐ ๊ฐ™์•„์š”.(์•„์ง ํ™•์‹ค ํ•œ๊ฑด ์•„๋‹ˆ์ง€๋งŒ ์ตœ์ข…์ ์œผ๋กœ vanila javscript ํŒŒ์ผ์ด ์–ด๋–ป๊ฒŒ ๋‚˜์˜ค๋Š”์ง€ ๋ณด๊ณ  ๋” ์œ ์ถ”ํ•ด๋ณผ๊ฒŒ์š”.)

๋†€๋ž์ง„ ์•Š๊ฒ ์ง€๋งŒ ์ด๋Ÿฌํ•œ ๋ฌธ๋ฒ•๋„ ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค.

<h1>Hello {name.toUpperCase()}</h1>
<script>
    let name = "world";
    // name = name.toUpperCase();
</script>

๐Ÿ“Œ Dynamic Attribute

์ด์ œ ํ•œ๋ฒˆ html atrribute์†์„ฑ์„ ์ง€์ •ํ•ด๋ณผ๊นŒ์š”?

<script>
    let src = "favicon.png";
</script>

<img src={src} alt="logo" />

์ด๋ ‡๊ฒŒ ์“ธ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๊ฑธ ์ข€๋” ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์š”.

<script>
    let src = "favicon.png";
</script>

<img {src} alt="logo" />

๐Ÿ“Œ Styling

์ด ๋ถ€๋ถ„์„ ๋ณด๊ณ  ์ œ๊ฐ€ ๊ฝค vue์™€ ๋‹ฎ์•„ ์žˆ๊ตฌ๋‚˜ ์‹ถ์—ˆ๋˜ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ๋ฐ”๋กœ .svelte ํŒŒ์ผ์— style์„ ์“ธ์ˆ˜ ์žˆ์–ด์š”.

<script>
    let name = "world";
</script>

<!-- ์ด๋ ‡๊ฒŒ vue์ฒ˜๋Ÿผ ๊ฐ™์€ ํŒŒ์ผ์— style์„ ์“ธ์ˆ˜ ์žˆ์–ด์š” -->
<style>
    h1 {
        color: red;
    }
</style>

<h1>Hello {name.toUpperCase()}</h1

๐Ÿ“Œ Nested components

react๋‚˜ vue์ฒ˜๋Ÿผ component๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ด์š”. ๋จผ์ € MyButton์„ ๋งŒ๋“ค์–ด๋ณผ๊ฒŒ์š”.

<!-- MyButton.svelte -->
<style>
  .my-btn {
    color: red;
  }
</style>

<button class="my-btn">HELLO</button>

์ด์ œ App.svelte์—์„œ MyButton์„ ํ•œ๋ฒˆ ๋ถˆ๋Ÿฌ์™€๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

<script>
    import MyButton from "./components/MyButton.svelte";
</script>

<MyButton />

๐Ÿ“Œ HTML tags

์ด๋ฒˆ์—๋Š” html tag๋ฅผ data์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•ด๋ณผ๊ฒŒ์š”.

<script>
    let string = `this string contains some <strong>HTML!!!</strong>`;
</script>

<p>{@html string}</p>

@html์„ ์‚ฌ์šฉํ•ด์„œ string์„ html ํƒœ๊ทธ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ Conclusion

์ด๋ ‡๊ฒŒ ์˜ค๋Š˜์€ svelte์˜ ๊ธฐ๋ณธ์ ์ธ ๊ฒƒ๋“ค์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์‹œ๊ฐ„์—๋Š” ๊ฐ€์žฅ ์ค‘์š”ํ•œ reactivity์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณผ๊ฒŒ์š”. ๊ทธ๋Ÿผ ๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ ๋งŒ๋‚˜์š”~ ์•ˆ๋…•!

๐Ÿ“Œ Reference

  • svelte tutorial
๋ฐ˜์‘ํ˜•

'Svelte' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Svelte - Iteration  (0) 2020.12.26
Svelte - Logic  (0) 2020.12.26
Svelte - Props  (0) 2020.12.26
Svelte - Reactivity  (0) 2020.12.26
Svelte - ์„ค์น˜ ๋ฐ ์‹คํ–‰ ๋ฐฉ๋ฒ•  (0) 2020.12.26
  1. ๐Ÿ“Œ ๋ชฉ๋ก
  2. ๐Ÿ“Œ Introduction
  3. ๐Ÿ“Œ Adding Data
  4. ๐Ÿ“Œ Dynamic Attribute
  5. ๐Ÿ“Œ Styling
  6. ๐Ÿ“Œ Nested components
  7. ๐Ÿ“Œ HTML tags
  8. ๐Ÿ“Œ Conclusion
  9. ๐Ÿ“Œ Reference
'Svelte' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • Svelte - Logic
  • Svelte - Props
  • Svelte - Reactivity
  • Svelte - ์„ค์น˜ ๋ฐ ์‹คํ–‰ ๋ฐฉ๋ฒ•
eddie0329
eddie0329
Front-end Developer
๋ฐ˜์‘ํ˜•
eddie0329
Eddie Sunny's Blog
eddie0329
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (100)
    • Summary of Book (0)
    • Vue Study (11)
    • Vue TDD (9)
    • Vue BDD (5)
    • Design Pattern (9)
    • Javascript Study (3)
    • React Study (15)
    • React TDD (1)
    • Vue Storybook (2)
    • Refactoring (0)
    • Graphql_Apollo (3)
    • Svelte (8)
    • Open Source (1)
    • D3 (4)
    • Typescript (1)
    • CSS (2)
    • Android (0)
    • Java (0)
    • Kotlin (0)
    • ์žก๋‹ด (0)
    • Swift (19)
    • Rust (2)
    • ํšŒ์‚ฌ์ด์•ผ๊ธฐ (2)
    • ReactNative Study (2)
    • Vitest (0)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • Home

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • client only
  • CSS
  • Vue
  • Vue test
  • vue cypress
  • React Native
  • Design Pattern
  • react
  • slot ํŒจํ„ด
  • Nextjs
  • Cypress
  • vue storybook
  • Kotlin
  • D3
  • Javascript
  • jest
  • vue3
  • swift5
  • vue tdd
  • vue bdd
  • apollo
  • storybook6
  • svelte
  • react useRef
  • react-component-slot
  • TypeScript
  • TDD
  • javascript pattern
  • swift
  • BDD

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

hELLO ยท Designed By ์ •์ƒ์šฐ.
eddie0329
Svelte - Basic
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.