iPod Video White

๐Ÿ““ TIL

[220630] ํ•œ๊ธ€์ž…๋ ฅ/compositionAPI

k_m_jin 2022. 6. 30. 19:12
- ํ•œ๊ธ€ ์ž…๋ ฅ 
<template>
<div class="todo-creator">
<input
:value="title"
type="text"
placeholder="ํ•  ์ผ์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”!"
@input="title = ($event.target as HTMLInputElement).value"
@keydown.enter="createTodo" />
<button @click="createTodo">
์ถ”๊ฐ€
</button>
</div>
</template>

<script lang="ts">
import { defineComponent } from 'vue'
import { mapStores } from 'pinia'
import { useTodoStore } from '~/store/todo'

export default defineComponent({
data() {
return {
title: ''
}
},
computed: {
...mapStores(useTodoStore)
},
methods: {
createTodo(event: KeyboardEvent | MouseEvent) { //๊ทธ๋ƒฅ Event๋กœ ํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Œ! ํ•˜์ง€๋งŒ ์—„๊ฒฉํ•˜๊ฒŒ ํ•˜๋Š”๊ฒƒ์„ ์„ ํ˜ธ~
if ((event as KeyboardEvent).isComposing) return //isComposing์ด true๋ฉด ํ•œ๊ธ€ ์ž…๋ ฅ์ด ๋˜๊ณ  ์žˆ๋Š” ์ค‘์ด๋ผ๋Š” ๋œป!! //isComposing์€ keyboardEvent์—์„œ๋งŒ ์žˆ์Œ!! ๊ทธ๋ž˜์„œ ์•ˆํ•ด์ฃผ๋ฉด ์—๋Ÿฌ~
if (!this.title.trim()) return //๋นˆ๋ฌธ์ž ์ธ์ง€~

this.todoStore.createTodo(this.title)
this.title = '' // ์„œ๋ฒ„์— ์ž…๋ ฅ๋œ ์ดํ›„์— ์ดˆ๊ธฐํ™”~!!
}
}
})
</script>

[์‹ค๊ฐ•]

- ์ปดํฌ์ง€์…˜์—์„œ๋Š” ๋ฐ˜์‘ํ˜•์ด ์•„๋‹Œ ์ถœ๋ ฅ๋งŒ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

- ref :
1.๋ฐ˜์‘ํ˜• ๋ฐ์ดํ„ฐ ๋งŒ๋“ค๊ธฐ(์›์‹œํ˜• ์ฐธ์กฐํ˜• ๊ฐ€๋Šฅ)
3. ref ๊ฐ์ฒด์˜ ๊ฐ’์„ ์‚ฌ์šฉํ• ๋• .value ๋ฅผ ๋ถ™์ธ๋‹ค.
2. this.$refs ์š”์†Œ์ฐธ์กฐ
import { ref } from 'vue'
 
 
const movie = ref({
title: '',
poster: ''
})
movie.value.title = (movieStore.movie.Title as string)
- reactive:  
1.๊ฐ์ฒด์™€ ๋ฐฐ์—ด๋งŒ ๋ฐ˜์‘์„ฑ ๋ถ€์—ฌ ๊ฐ€๋Šฅ -> ๋ฐ˜์‘ํ˜• ๋ฐ์ดํ„ฐ ๋งŒ๋“ค๊ธฐ
2. ๊ฐ์ฒด์— value ๋ฅผ ์•ˆ ๋ถ™์ธ๋‹ค.
const movie = reactive({
title: '',
poster: ''
})


- defineComponent ๋Š” optionsAPI ์—์„œ ts ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“ˆ

 


toRefs /toRef

- ๊ฐ์ฒด๊ตฌ์กฐ ๋ถ„ํ•ดํ• ๋‹น์„ ํ• ๋•Œ ๋ฐ˜์‘์„ฑ์ด ์ฆ๋ฐœ ํ•ด๋ฒ„๋ฆฌ๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€
const { name } = $props
const { name } = toRefs($props)
// ์œ„์™€ ๊ฐ™์€ ์ฝ”๋“œ
const name = toRef($props,'name')
 
 
 
๋ฐ˜์‘ํ˜•

'๐Ÿ““ TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[220704]  (0) 2022.07.04
[220701] Firebase  (0) 2022.07.01
[220629] ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„ 2ํšŒ  (0) 2022.06.30
[220628]  (0) 2022.06.29
[220627]  (0) 2022.06.27