๐Ÿ““ TIL

[220628]

k_m_jin 2022. 6. 29. 01:43

composition API

  • ์ฝ”๋“œ์˜ ์„ฑ๊ฒฉ์— ๋”ฐ๋ฅธ ๊ตฌ์กฐ๋กœ ๋‚˜๋ˆ„์–ด ์“ธ ์ˆ˜ ์žˆ๋‹ค.
  • ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐ€์ง€๊ณ ๋งŒ ์˜ค๋ฉด ์ž๋™์œผ๋กœ ๋“ฑ๋ก๋˜๊ณ  ์‚ฌ์šฉ ๊ฐ€๋Šฅ.
  • import { defineComponent } from 'vue'
  • ์Šคํฌ๋ฆฝํŠธ ๋ถ€๋ถ„์˜ ์ฝ”๋“œ๋งŒ ๋‹ค๋ฅผ๋ฟ
  • this ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ
  • ์ตœ์ƒ์œ„์—์„œ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค๋ฉด ํ…œํ”Œ๋ฆฟ์—์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅ
  • created ์™€ beforecreated ๊ฐ€ ์—†์Œ (lifecycle์€ ์กด์žฌ)

ref

  • ๋ฐ˜์‘ํ˜•์„ ์œ„ํ•ด

  • ๊ฐ์ฒด ๋ฐ์ดํ„ฐ ํƒ€์ž… -> ๊ฐ’์ด ์žˆ๋Š” ๊ณณ์€ value

    import { ref } from 'vue'
    const counter = ref(0)
    
    console.log(counter) // { value: 0 }  
    console.log(counter.value) // 0
    
    counter.value++  
    console.log(counter.value) // 1

    plugin

watch

  • watch( ๊ฐ์‹œํ•ด์•ผ ํ•˜๋Š” ๋Œ€์ƒ, ์ฝœ๋ฐฑ)

  • ๊ฐ์‹œํ•ด์•ผํ•˜๋Š” ๋Œ€์ƒ์€ ๊ฐ’์ด ์•„๋‹ˆ๋ผ ref ๊ฐ์ฒด์—ฌ์•ผ ํ•จ

    watch(
    //๊ฐ’์ผ๋•Œ๋Š” ์ฝœ๋ฐฑ์˜ ๋ฆฌํ„ด์œผ๋กœ ํ•ด์ค˜์•ผํ•จ!
    ()=> workspaceStore.workspacesLoaded,
    loaded => {
      loaded && workspaceStore.findWorkspacePath(currentWorkspaceId.value)
    }) 
    watch(route,()=> {
    workspaceStore.findWorkspacePath(currentWorkspaceId.value)
    })
  • ๊ณต์‹ ๋ฌธ์„œ ์ฝ์–ด๋ณด๊ธฐ

๋ฐ˜์‘ํ˜•