| ์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- javascript
- ๋ฏธ๊ตญ์ฃผ์
- Kotlin
- kotlin ์๊ณ ๋ฆฌ์ฆ
- pnpm
- ์ฝํ๋ฆฐ ์คํ
- ์๋ฐ
- ์ฝํ๋ฆฐ
- vue3
- CI/CD
- ๋ฐฐ๋น์ฃผ
- ํ๋ก๊ทธ๋๋จธ์ค
- kotlin algorithm
- Vue.js
- ์ฝํ๋ฆฐ ์๊ณ ๋ฆฌ์ฆ
- ํ์ฝํ
- ๋ฐฑ์ค ์ฝํ๋ฆฐ
- ์๊ณ ๋ฆฌ์ฆ
- ์๋ฐ์คํฌ๋ฆฝํธ
- ์๋ฐ ์๊ณ ๋ฆฌ์ฆ
- ํ์ด์ฌ
- Java
- GIT
- ๋ฐฑ์ค
- ๋ฏธ๊ตญ๋ฐฐ๋น์ฃผํฌ์
- java ์ฝ๋ฉ ํ ์คํธ
- python
- Swift
- linux
- js
- Today
- Total
๐ ์ ์ด์ ๋จธ๋ฆฟ์์ผ๋ก
[Vue] Multiple v-model ์์ ์(modifiers) ์ฒ๋ฆฌํ๊ธฐ(์ต์ ์ฌ์ฉํ๊ธฐ) ๋ณธ๋ฌธ
[Vue] Multiple v-model ์์ ์(modifiers) ์ฒ๋ฆฌํ๊ธฐ(์ต์ ์ฌ์ฉํ๊ธฐ)
Space_Jin 2024. 8. 13. 14:25Vue ๊ณต์ ๊ฐ์ด๋ ๋ฌธ์์์ v-model์ ์์ ์ ์ฒ๋ฆฌ, ๋ค์ค(multiple) v-model ์ฌ์ฉ๋ฒ์ ๋ํด์ ๋์์๋ค.
ํ๋์ v-model ์์ ์๋ฅผ ์ด์ฉํด set, get๊ณผ ๊ฐ์ ์ต์ ์ ์ฌ์ฉํ๋๋ฒ์ด ์๊ฐ ๋์ง๋ง, ๋ค์ค v-model์ ์ฌ์ฉํ์ ๋, ์์ ์๋ฅผ ๋ฐ๋ ๋ฐ์๋ง ์๊ฐ๋๊ณ set๊ณผ ๊ฐ์ ์ต์ ์ ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ด ๋น ์ ธ์์ด ์ถ๊ฐ ํด๋ณธ๋ค.
composition ์คํ์ผ ์งํฅํด์ composition ๋ฐฉ์์ผ๋ก๋ง ์๊ฐ ํฉ๋๋ค.


๐ค ์์ ์ฝ๋ ::: ๊ณต์ ๊ฐ์ด๋ playground ์์ ๋ฅผ ํ์ฉ
<script setup>
import { ref } from 'vue'
import MyComponent from './MyComponent.vue'
const firstText = ref('')
const secondText = ref('')
</script>
<template>
<MyComponent
v-model:first.capitalize="firstText"
v-model:second.capitalize="secondText"
/>
</template>
App.vue
<script setup>
const [first, modifiers1] = defineModel('first', {
set(value) {
if (modifiers1.capitalize) {
return value.charAt(0).toUpperCase() + value.slice(1)
}
return value
}
})
const [second, modifiers2] = defineModel('second', {
set(value) {
if (modifiers2.capitalize) {
return value.charAt(0).toLowerCase() + value.slice(1)
}
return value
}
})
</script>
<template>
first: <input type="text" v-model="first" />
<br/>
second: <input type="text" v-model="second" />
</template>
MyComponent.vue
์ ์ฝ๋๋ 2๊ฐ์ input๊ณผ v-model์ ๊ฐ๋ Mycomponent.vue๋ฅผ App.vue์์ import ํด์ ์ฌ์ฉํ๋ ์ฝ๋์ด๋ค.
์ต์ ์ ์ฌ์ฉ๋ฒ์ defineModel() ๋งคํฌ๋ก์ ๋๋ฒ์งธ ์ธ์์ ์ฌ์ฉํด์ฃผ๋ฉด ๋๋ค.
๊ธฐ๋ฅ์ ์๋์ ๊ฐ๋ค.
'''
first๋ผ๋ name์ ๊ฐ์ง v-model์ด capitalize๋ผ๋ ์์ ์๋ฅผ ๊ฐ์ง๋ฉด, ์ฒซ๊ธ์๋ ๋๋ฌธ์๋ก set ํ return
second๋ผ๋ name์ ๊ฐ์ง v-model์ด capitalize๋ผ๋ ์์ ์๋ฅผ ๊ฐ์ง๋ฉด, ์ฒซ๊ธ์๋ ์๋ฌธ์๋ก set ํ return
'''
