๐ ๋ชฉ๋ก
- 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
'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 |