Skip to content

Commit

Permalink
update the title and contents
Browse files Browse the repository at this point in the history
  • Loading branch information
joshua1988 committed Oct 3, 2023
1 parent 718ccc7 commit 442f9a1
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 8 deletions.
5 changes: 4 additions & 1 deletion docs/.vuepress/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,10 @@ module.exports = {
'/composition/lifecycle',
'/composition/props',
'/composition/event-emit',
'/composition/script-setup',
{
title: '<script setup>',
path: '/composition/script-setup',
}
],
},
{
Expand Down
41 changes: 34 additions & 7 deletions docs/composition/script-setup.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Script Setup
title: Script Setup πŸ†•
---

# `<script setup>` <Badge text="Vue 3"/>
Expand Down Expand Up @@ -58,18 +58,45 @@ function changeMessage() {

이 μ½”λ“œλŠ” μ•žμ—μ„œ μ‚΄νŽ΄λ³Έ μ½”λ“œμ™€ 같은 μ½”λ“œμž…λ‹ˆλ‹€. λ°˜μ‘μ„±μ΄ μ£Όμž…λœ `message` 데이터와 `changeMessage()` ν•¨μˆ˜λŠ” λ³„λ„λ‘œ μ΅μŠ€ν¬νŠΈν•˜κ±°λ‚˜ 좔가적인 μž‘μ—…μ„ ν•˜μ§€ μ•Šμ•„λ„ ν…œν”Œλ¦Ώ ν‘œν˜„μ‹μ—μ„œ μ‚¬μš©ν•  수 있게 λ©λ‹ˆλ‹€. `setup()` 속성을 μ •μ˜ν•˜λ©΄ 맀번 κ·Έ μ•ˆμ—μ„œ μ •μ˜λœ 데이터와 λ©”μ„œλ“œ 등은 λ°˜ν™˜ν•΄μ€˜μ•Ό ν•˜κΈ° λ•Œλ¬Έμ— 이 번거둜운 절차λ₯Ό 쀄여쀀 것이죠.

<!-- ## `<script setup>` κΈ°λ³Έ
## μ£Όμ˜ν•  점

`<script setup>`을 μ‚¬μš©ν•  λ•ŒλŠ” λ°˜μ‘μ„±μ΄ μ£Όμž…λœ 데이터와 그렇지 μ•Šμ€ 일반 λ³€μˆ˜λ₯Ό 잘 ꡬ뢄해야 ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, λ‹€μŒκ³Ό 같은 μ½”λ“œκ°€ μžˆλ‹€κ³  ν•©μ‹œλ‹€.

```html
<template>
<div>{{ message }}</div>
<button @click="changeMessage">λ³€κ²½</button>
</template>

<script setup>
let message = 'Hello';
function changeMessage() {
message = 'Hi';
}
</script>
```

μœ„ μ½”λ“œμ—μ„œ `message` λ³€μˆ˜λŠ” λ°˜μ‘μ„±μ΄ μ£Όμž…λ˜μ§€ μ•Šμ€ 일반 λ³€μˆ˜μž…λ‹ˆλ‹€. `let`으둜 μ„ μ–Έλ˜μ—ˆκΈ° λ•Œλ¬Έμ— λ³€μˆ˜μ˜ 값을 λ°”κΏ€ 수 있죠. λ³€κ²½ λ²„νŠΌμ„ 눌러 `changeMessage` λ©”μ„œλ“œκ°€ μ‹€ν–‰λ˜λ©΄ `message` 값을 `Hello`둜 λ°”κΏ€ κ²λ‹ˆλ‹€.

μ‹€μ œλ‘œ λ²„νŠΌμ„ 눌러보면 슀크립크 λ ˆλ²¨μ—μ„œλŠ” `message`의 값이 λ°”λ€Œμ§€λ§Œ ν™”λ©΄μ—λŠ” 바뀐 값이 ν‘œμ‹œλ˜μ§€ μ•ŠλŠ” 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λ ‡κ²Œ λ™μž‘ν•˜λŠ” μ΄μœ λŠ” `message` 값에 λ°˜μ‘μ„±μ΄ μ£Όμž…λ˜μ§€ μ•Šκ³  일반 λ³€μˆ˜λ‘œ μ·¨κΈ‰λœ μƒνƒœμ—μ„œ ν…œν”Œλ¦Ώ ν‘œν˜„μ‹μ— ν‘œμ‹œλ˜μ—ˆκΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. κ·Έλž˜μ„œ ν•¨μˆ˜κ°€ μ •μƒμ μœΌλ‘œ μ‹€ν–‰λ˜μ—ˆμ§€λ§Œ ν™”λ©΄μ˜ 값은 λ°”λ€Œμ§€ μ•Šμ£ .

λ§Œμ•½ 값이 λ°”λ€Œμ—ˆμ„ λ•Œ λ°˜μ‘μ„±μ— μ˜ν•΄ μ •μƒμ μœΌλ‘œ λ³€κ²½λœ 데이터가 화면에 ν‘œμ‹œν•˜κ²Œ ν•˜λ €λ©΄ λ‹€μŒκ³Ό 같이 μ½”λ“œλ₯Ό μˆ˜μ •ν•˜λ©΄ λ©λ‹ˆλ‹€.

```html
<script setup>
import { ref } from 'vue';
// data
const message = ref('Hello');
const message = ref('Hi')
// methods
function changeMessage() {
message.value = 'Hi';
message.value = 'Hello'
}
</script>
``` -->
```

이처럼 `<script setup>`을 λ‹€λ£° λ•ŒλŠ” λ°˜μ‘μ„±μ΄ μ£Όμž…λœ 데이터와 그렇지 μ•Šμ€ 데이터λ₯Ό 잘 ꡬ뢄해 μ£Όμ–΄μ•Ό ν•©λ‹ˆλ‹€.

:::tip
μ»΄ν¬μ§€μ…˜μ—μ„œ λ°˜μ‘μ„±μ΄ μ£Όμž…λœ 데이터λ₯Ό λ‹€λ£° λ•ŒλŠ” μžμ—°μŠ€λŸ½κ²Œ `let`이 μ•„λ‹Œ `const`둜 μ„ μ–Έν•˜μ—¬ μ œμ–΄ν•˜κ²Œ λ©λ‹ˆλ‹€. μ™œλƒν•˜λ©΄ `const`λŠ” ν•œλ²ˆ μ„ μ–Έν•˜λ©΄ 값을 λ°”κΏ€ 수 μ—†μ§€λ§Œ `let`은 μ„ μ–Έν•œ 이후에도 λ°”κΏ€ 수 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€. `ref`와 같이 λ°˜μ‘μ„±μ„ μ£Όμž…ν•˜λŠ” API의 νŠΉμ§•μ€ μ„ μ–Έν•œ λ³€μˆ˜μ΄ 값을 λ°”κΎΈλŠ” 것이 μ•„λ‹ˆλΌ λ‚΄μž₯된 `.value`의 값을 λ°”κΏ‰λ‹ˆλ‹€. λ”°λΌμ„œ, `let`을 μ“°λŠ” 것보닀 `const`λ₯Ό μ“°λŠ”κ²Œ 더 μ•ˆμ „ν•©λ‹ˆλ‹€ :)
:::

0 comments on commit 442f9a1

Please sign in to comment.