์ „์ฒด ๊ธ€

Front-end Developer
Vue Study

Vue3 - teleport

๐Ÿ“Œ ๋ชฉ์ฐจ Introduction What is teleport? Usage Conclusion Reference ๐Ÿ“Œ Introduction ์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ์—๋Š” teleport์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ“Œ What is teleport? teleport๋Š” vue2์—์„œ vue-teleport์™€ ๋˜‘๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฌธ์„œ์—์„œ๋Š” ์ฃผ๋กœ modal์„ ์‚ฌ์šฉํ• ๋•Œ ์“ด๋‹ค๊ณ  ํ•˜๋„ค์š”. to๋ฅผ ์ด์šฉํ•ด์„œ ๋ณด๋‚ผ์ˆ˜ ์žˆ๋Š”๋ฐ ๊ทธ๋ƒฅ ์ผ๋ฐ˜์ ์ธ string์œผ๋กœ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•„์ด๋””๋‚˜ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์‚ฌ์šฉํ•˜๋ผ๊ณ  ํ•˜๋„ค์š”. ๋‹น์—ฐํ•œ ์–˜๊ธฐ์ง€๋งŒ ์›ํ•˜๋Š” ๊ณณ์œผ๋กœ ์ œ๋Œ€๋กœ ๋ณด๋‚ผ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๐Ÿ“Œ Usage // App.js MyDiv01 MyDiv02 ์ด์ œ div(#teleport)์•ˆ์œผ๋กœ ๋“ค์–ด๊ฐ€์ง‘๋‹ˆ๋‹ค. ..

Vue Study

Vue3 - Provide/Inject

๐Ÿ“Œ ๋ชฉ์ฐจ Introduction What is Provide/Inject? Usage Reactice Usage Conclusion Reference ๐Ÿ“Œ Introduction ์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ƒˆ๋กœ์šด provide/inject์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ์„œ๋ณผ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ“Œ What is Provide/Inject? ๋งŒ์•ฝ ์ด๋Ÿฐ ์ƒํ™ฉ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•ด๋ณผ๊ฒŒ์š”. ์ƒ์œ„์˜ ๋ถ€๋ชจ์—์„œ ๋ฌผ๋ก  props๋กœ ์ „๋‹ฌ์ด ๊ฐ€๋Šฅํ•˜๊ฒ ์ง€๋งŒ ์ข€๋” ๊น”๋”ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•œ๋ฒˆ์— ์ „๋‹ฌํ•  ์ˆœ ์—†์„๊นŒ์š”? ๋„ค ๊ทธ๊ฒŒ provide/inject์ž…๋‹ˆ๋‹ค. ๐ŸŽ‰ ๐Ÿ“Œ Basic Usage ์ปดํฌ๋„ŒํŠธ ๊ตฌ์กฐ ์ž…๋‹ˆ๋‹ค. |_App -> provide โญ๏ธ |_MyDiv1 |_MyDiv2 |_MyDiv3 |_InjectedPractice -> inje..

Vue Study

Vue3 - LifeCycle

๐Ÿ“Œ ๋ชฉ์ฐจ Introduction Life cycle in vue Hook inside setup Conclusion Reference ๐Ÿ“Œ Introduction ์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜์€ Vue3์— ์ƒˆ๋กœ์šด life cycle์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ“Œ Hook inside setup ๋จผ์ € ์ƒˆ๋กญ๊ฒŒ ๋ฐ”๋€ ๊ฒƒ๋“ค์— ๋Œ€ํ•ด์„œ Vue3 ๊ณต์‹ ๋ฌธ์„œ์— ์ž์„ธํ•˜๊ฒŒ ๋‚˜์™€์žˆ์Šต๋‹ˆ๋‹ค. ๋„ค ์ด์ œ beforeCreated๋‚˜ created๋Š” ๊ตณ์ด ์„ ์–ธ์„ ํ• ํ•„์š”๊ฐ€ ์—†์–ด ์กŒ์Šต๋‹ˆ๋‹ค. import { onMounted, nextTick, onUpdated } from 'vue'; export default { name: 'App', components: { HelloWorld }, setup() { co..

Vue Study

Vue3 - computed and watch

๐Ÿ“Œ ๋ชฉ์ฐจ Introduction computed watchEffect watch Conclusion Reference ๐Ÿ“Œ Introduction ์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” computed์™€ watch์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ์„œํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ“Œ computed computed๋Š” ๊ธฐ์กด vue 2์—์„œ์˜ computed์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ ์€ immutable ref object๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. import { ref, computed } from 'vue'; export default { setup() { const count = ref(1); const plusOne = computed(() => count.value + 1); const onClick = () => ..

Vue Study

Vue3 - Refs

๐Ÿ“Œ ๋ชฉ์ฐจ Introduction ref unref toRef toRefs isRef customRef shallowRef triggerRef Conclusion Reference ๐Ÿ“Œ Introduction ์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ํฌ์ŠคํŒ…์€ vue3์˜ refs์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ์„œํ™•์ธ ํ•˜์‹ค์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ“Œ ref ref inner value๋กœ reactiveํ•˜๊ณ  mutableํ•œ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ref ๊ฐ์ฒด๋Š” value property๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. import { ref } from 'vue'; export default { setup() { const count = ref(0); const onClick = () => { console.log(count); // { ..

Vue Study

Vue3 - Basic Reactivity APIs

๐Ÿ“Œ ๋ชฉ์ฐจ Introduction reactive readonly isProxy isReactive isReadonly toRaw markRaw shallowReactive shallowReadonly Conclusion Reference ๐Ÿ“Œ Introduction ์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜์€ vue3์˜ ์ƒˆ๋กœ์šด reactive apis์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๐ŸŽ‰ ๐Ÿ“Œ reactive reactive๋Š” deep-copy๋œ object๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. import { reactive } from 'vue'; export default { name: 'App', setup() { const obj = reactive({ count: 0 }); const c..

Javascript Study

Proxy

๐Ÿ“Œ ๋ชฉ์ฐจ Introduction What is proxy? Basic Example of Proxy Conclusion Reference ๐Ÿ“Œ Introduction ์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ์— Vue3 ๊ณต๋ถ€์™€ ๋‚˜๋งŒ์˜ ํ”„๋ ˆ์ž„์›Œํฌ ๋งŒ๋“ค๊ธฐ์—์„œ ๋‚˜์˜จ Proxy๋ผ๋Š” ๊ฐœ๋…์ด ์ƒ์†Œํ•˜์—ฌ ๊ฐœ๋…์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๐Ÿ“Œ What is proxy? Proxy๊ฐ์ฒด๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ์˜ ๊ธฐ๋ณธ ์ž‘์—…์— ๋Œ€ํ•œ ํ–‰์œ„์— ๋Œ€ํ•ด ์‚ฌ์šฉ์ž ์ปค์Šคํ…€ ๋™์ž‘์„ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์ธ Proxy ์‚ฌ์šฉ: new Proxy(target, handler); target์€ Proxy๋กœ ๋žฉํ•‘ํ•  ๋Œ€์ƒ ๊ฐ์ฒด๋ฅผ ์ง€์ •ํ•ด์ฃผ๊ณ  handler๋Š” Proxy์˜ ๋™์ž‘์„ ์ •์˜ํ•˜๋Š” ํ•จ์ˆ˜ ๊ฐ์ฒด๋ฅผ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค. ๐Ÿ“Œ Basic Example of Proxy ๋งŒ์•ฝ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ง€์ •์„ ํ•ด์ฃผ์ง€ ์•Š๋Š”๋‹ค..

Design Pattern

Mediator Pattern

๐Ÿ“Œ ๋ชฉ์ฐจ Introduction What's Mediator Pattern? Implementation Conclusion Reference ๐Ÿ“Œ Introduction ์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ค‘์žฌ์ž ํŒจํ„ด์— ๋Œ€ํ•ด ๋ฐฐ์›Œ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ“Œ What's Mediator Pattern? ์ค‘์žฌ์ž ํŒจํ„ด์œผ๋กœ Messenger Class๋ฅผ ๊ตฌํ˜„ ํ•ด๋ณผ ํ…๋ฐ์š”. ์ค‘์žฌ์ž ํŒจํ„ด์€ ๋‹ค์Œ ๋„ํ˜•๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. Message๋ฅผ ๊ฐ๊ฐ์˜ participants์—๊ฒŒ ๋ฟŒ๋ ค์ฃผ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„  ์ผ๋‹จ ๋‘๋ช…๋งŒ ๋“ฑ๋ก์„ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ€์ •์„ ํ•˜๊ณ  ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„์ด ๋˜๋Š”์ง€๋ฅผ ๋ณด์—ฌ๋“œ๋ฆฌ๊ณ˜์Šต๋‹ˆ๋‹ค. ๐Ÿ“Œ Implementation ์ผ๋‹จ ์ค‘์žฌ์ž ํŒจํ„ด์œผ๋กœ ์“ด Messenger๋Š” ์ด๋ ‡๊ฒŒ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. class Messenger { constructor(..

eddie0329
Eddie Sunny's Blog