Svelte

Svelte - Reactivity

2020. 12. 26. 21:39
๋ชฉ์ฐจ
  1. ๐Ÿ“Œ ๋ชฉ๋ก
  2. ๐Ÿ“Œ Introduction
  3. ๐Ÿ“Œ Assignments
  4. ๐Ÿ“Œ Declarations
  5. ๐Ÿ“Œ Statements
  6. ๐Ÿ“Œ Updating arrays and objects
  7. ๐Ÿ“Œ Conclusion
  8. ๐Ÿ“Œ Reference
๋ฐ˜์‘ํ˜•

๐Ÿ“Œ ๋ชฉ๋ก

  • Introduction
  • Assignments
  • Declarations
  • Statements
  • Updating arrays and objects
  • Conclusion
  • Reference

๐Ÿ“Œ Introduction

์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜์€ ๊ฐ€์žฅ ์ค‘์š”ํ•œ reactivity์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋˜๊ฒŒ javascript ์Šค๋Ÿฝ๋”๋ผ๊ตฌ์š”. ์ง๊ด€์ ์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. vanila javscript๋ฅผ ์งœ๋Š” ๋А๋‚Œ์ด ๋งŽ์ด ๊ฐ•ํ•˜๊ฒŒ ๋“ค์—ˆ๋˜๊ฑฐ ๊ฐ™์•„์š”. ๊ทธ๋Ÿผ ํ•œ๋ฒˆ ๋ณผ๊นŒ์š”?

๐Ÿ“Œ Assignments

์ผ๋‹จ ๋จผ์ € ๊ฐ„๋‹จํ•˜๊ฒŒ counter๋ฅผ ๊ตฌํ˜„ํ•ด๋ณผ๊ฒŒ์š”. reactivity๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ click event๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

<script>
  let count = 0;

  const increaseCount = () => {
    count += 1;
  };

  const decreaseCount = () => {
    count -= 1;
  };
</script>

<h1>{count}</h1>
<button on:click={increaseCount}>+</button>
<button on:click={decreaseCount}>-</button>

let ํ‚ค์›Œ๋“œ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฐ”๋กœ ์ด๋ ‡๊ฒŒ ํ•ด์ค„ ์ˆ˜ ์žˆ์–ด์š”.

๐Ÿ“Œ Declarations

vue์—์„œ์˜ computed ๊ฐ™์€ ์•„์ด๋ฅผ ์†Œ๊ฐœํ• ๊นŒ ํ•ฉ๋‹ˆ๋‹ค.

<script>
  let count = 0;

  const increaseCount = () => {
    count += 1;
  };

  const decreaseCount = () => {
    count -= 1;
  };
  // ์ด๋ ‡๊ฒŒ computed value๋ฅผ ์ง€์ •ํ•ด์ค„ ์ˆ˜ ์žˆ์–ด์š”.
  $: double = count * 2;
</script>

<h1>{count}</h1>
<h1>{double}</h1>
<button on:click={increaseCount}>+</button>
<button on:click={decreaseCount}>-</button>

๐Ÿ“Œ Statements

svelte์€ ๋‹จ์ˆœํ•˜๊ฒŒ value ๋ฟ ์•„๋‹ˆ๋ผ aribitary value๊นŒ์ง€ ๋„ฃ์„ ์ˆ˜ ์žˆ์–ด์š”.

<script>
  let count = 0;

  const increaseCount = () => {
    count += 1;
  };

  const decreaseCount = () => {
    count -= 1;
  };

  $: double = count * 2;
  // count ๊ฐ’์ด ๋ณ€ํ•˜๋ฉด ์ž๋™์ ์œผ๋กœ console.log๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  $: console.log(`count is ${count}`);
</script>

<h1>{count}</h1>
<h1>{double}</h1>
<button on:click={increaseCount}>+</button>
<button on:click={decreaseCount}>-</button>

๋˜ํ•œ ์ด๋ ‡๊ฒŒ block์œผ๋กœ ๋‚˜ํƒ€๋‚ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

<script>
$: if (count === 10) {
    console.log(`count is 10`);
  }
</script>

๐Ÿ“Œ Updating arrays and objects

Svelte's reactivity๋Š” push๋‚˜ splice๊ฐ™์€ ๊ฒƒ๋“ค๋กœ๋Š” trigger ๋˜์ง€ ์•Š์•„์š”. (react์˜ ๋ถˆ๋ณ€์„ฑ์„ ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋” ์‰ฌ์šธ๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค.)

<script>
  let numbers = [1, 2, 3, 4];

  $: sumOfNumbers = numbers.reduce((a, c) => a + c);

  const addNumber = () => {
    numbers = [...numbers, numbers.length + 1];
  };
</script>

<h1>NUMBERS: {numbers}</h1>
<h1>SUM: {sumOfNumbers}</h1>
<button on:click={addNumber}>ADD</button>

๐Ÿ“Œ Conclusion

์ด๋ ‡๊ฒŒ ์˜ค๋Š˜์€ reactivity์— ๋Œ€ํ•ด์„œ ํ•œ๋ฒˆ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ •๋ง ๋งŽ์€ ์ฝ”๋“œ๋“ค์ด ๊ฐ„์†Œํ™” ๋˜๋Š”๊ฒŒ ์žฅ์ ์ธ๊ฑฐ ๊ฐ™์•„์š”. react๋ฅผ ์‚ฌ์šฉํ•ด๋ณผ๋•Œ๋„ ์—„์ฒญ ๋†€๋ž์ง€๋งŒ ์ฝ”๋“œ์˜ ์–‘์ด ์ƒ๊ฐ ๋ณด๋‹ค ๋งŽ๋‹ค๊ณ  ์ขŒ์ ˆ์„ ๋А๋‚„๋•Œ์ฏค vue์˜ ๊ฐ„์†Œํ™”์— ๋†€๋ž๋Š”๋ฐ... svelte๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ vue์˜ ๊ฐ„์†Œํ™”๋œ ์žฅ์ ์„ ๋” ์‚ด๋ฆฌ๊ณ  ๋” ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ์„ ํ•  ์ˆ˜ ์žˆ๋Š”๊ฑฐ ๊ฐ™์•„์„œ ๋„ˆ๋ฌด ์ข‹์€๊ฑฐ ๊ฐ™์•„์š”. ๊ทธ๋ฆฌ๊ณ  ์ƒˆ์‚ผ ๋น ๋ฅด๊ฒŒ ์•ฑ์„ ์‹คํ–‰ ์‹œํ‚ฌ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์ด๋ ‡๊ฒŒ ํฌ๊ฒŒ ๋‹ค๊ฐ€์˜ฌ์ค„์€ ๋ชฐ๋ž์Šต๋‹ˆ๋‹ค. ์ •๋ง svelte์˜ ๋งค๋ ฅ์— ํ‘น ๋น ์งˆ ๊ฒƒ๋งŒ ๊ฐ™์•„์š”.

๐Ÿ“Œ Reference

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

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

Svelte - Iteration  (0) 2020.12.26
Svelte - Logic  (0) 2020.12.26
Svelte - Props  (0) 2020.12.26
Svelte - Basic  (0) 2020.12.26
Svelte - ์„ค์น˜ ๋ฐ ์‹คํ–‰ ๋ฐฉ๋ฒ•  (0) 2020.12.26
  1. ๐Ÿ“Œ ๋ชฉ๋ก
  2. ๐Ÿ“Œ Introduction
  3. ๐Ÿ“Œ Assignments
  4. ๐Ÿ“Œ Declarations
  5. ๐Ÿ“Œ Statements
  6. ๐Ÿ“Œ Updating arrays and objects
  7. ๐Ÿ“Œ Conclusion
  8. ๐Ÿ“Œ Reference
'Svelte' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • Svelte - Logic
  • Svelte - Props
  • Svelte - Basic
  • Svelte - ์„ค์น˜ ๋ฐ ์‹คํ–‰ ๋ฐฉ๋ฒ•
eddie0329
eddie0329
Front-end Developer
Eddie Sunny's BlogFront-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

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

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

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

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

์ตœ๊ทผ ๊ธ€

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

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

๋‹จ์ถ•ํ‚ค

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

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

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

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

๋ชจ๋“  ์˜์—ญ

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

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