๋ชฉ๋กProgramming/Vue (5)

๐Ÿ“ ์ ์–ด์„œ ๋จธ๋ฆฟ์†์œผ๋กœ

[Vue] Multiple v-model ์ˆ˜์ •์ž(modifiers) ์ฒ˜๋ฆฌํ•˜๊ธฐ(์˜ต์…˜ ์‚ฌ์šฉํ•˜๊ธฐ)

Vue ๊ณต์‹ ๊ฐ€์ด๋“œ ๋ฌธ์„œ์—์„œ v-model์˜ ์ˆ˜์ •์ž ์ฒ˜๋ฆฌ, ๋‹ค์ค‘(multiple) v-model ์‚ฌ์šฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋‚˜์™€์žˆ๋‹ค. ํ•˜๋‚˜์˜ v-model ์ˆ˜์ •์ž๋ฅผ ์ด์šฉํ•ด set, get๊ณผ ๊ฐ™์€ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋Š”๋ฒ•์ด ์†Œ๊ฐœ ๋˜์ง€๋งŒ, ๋‹ค์ค‘ v-model์˜ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ, ์ˆ˜์ •์ž๋ฅผ ๋ฐ›๋Š” ๋ฐ›์‹๋งŒ ์†Œ๊ฐœ๋˜๊ณ  set๊ณผ ๊ฐ™์€ ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ๋น ์ ธ์žˆ์–ด ์ถ”๊ฐ€ ํ•ด๋ณธ๋‹ค. composition ์Šคํƒ€์ผ ์ง€ํ–ฅํ•ด์„œ composition ๋ฐฉ์‹์œผ๋กœ๋งŒ ์†Œ๊ฐœ ํ•ฉ๋‹ˆ๋‹ค.    ๐Ÿค– ์˜ˆ์ œ ์ฝ”๋“œ ::: ๊ณต์‹ ๊ฐ€์ด๋“œ playground ์˜ˆ์ œ๋ฅผ ํ™œ์šฉ App.vue first: second: MyComponent.vue ์œ„ ์ฝ”๋“œ๋Š” 2๊ฐœ์˜ input๊ณผ v-model์„ ๊ฐ–๋Š” Mycomponent.vue๋ฅผ App.vue์—์„œ import ํ•ด์„œ ์‚ฌ์šฉ..

Programming/Vue 2024. 8. 13. 14:25
[vue3] pnpm ์„ค์น˜ (ft. errno -13 ์˜ค๋ฅ˜)

pnpm ์„ค์น˜ํ•˜๊ธฐ vue ํ”„๋กœ์ ํŠธ์˜ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ๋ฅผ npm -> pnpm์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ ์ž ํ•œ๋‹ค. pnpm์€ npm๋ณด๋‹ค ์—ฌ๋Ÿฌ ๋ฐฉ๋ฉด์—์„œ ํ–ฅ์ƒ๋œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.(์šฉ๋Ÿ‰, ์บ์‹œ ์šฉ๋Ÿ‰ ์ ˆ์•ฝ ๋“ฑ) ํšŒ์‚ฌ์˜ ์‹ ๊ทœ ํ”„๋กœ์ ํŠธ๋„ ํŒจ์ง€ํ‚ค ๊ด€๋ฆฌ๋ฅผ pnpm์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ  ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ๋„ pnpm์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์—ฌ๋Ÿฌ๋ฐฉ๋ฉด์œผ๋กœ ๋„์›€์ด ๋  ๋“ฏ ํ•˜๋‹ค. ๐Ÿ›  ์„ค์น˜ ์ค€๋น„๋ฌผ pnpm์„ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Node.js์˜ ๋ฒ„์ ผ์ด 18.0 ์ด์ƒ์ด์—ฌ ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. $ node --version ํ„ฐ๋ฏธ๋„์—์„œ ์œ„ ๋ช…๋ น์–ด๋ฅผ ์ณ์„œ ๋…ธ๋“œ ๋ฒ„์ ผ์„ ํ™•์ธํ•˜์ž.($๋Š” ๋ช…๋ น์–ด๋ฅผ ์˜๋ฏธํ•˜๋‹ˆ $๋Š” ๋นผ๊ณ  ํƒ€์ดํ•‘ ํ•ด์ค˜์•ผํ•œ๋‹ค.) ๊ฒฐ๊ณผ๊ฐ’์ด v18.0.0 ์ด์ƒ์ด๋ผ๋ฉด ์„ค์น˜ ๊ฐ€๋Šฅํ•  ๊ฒƒ์ด๋‹ค. ๐Ÿ›  ์„ค์น˜ ํ•˜๊ธฐ $ npm install -g pnpm ํ„ฐ๋ฏธ๋„์—์„œ pmpm์„ ์„ค์น˜ํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ..

Programming/Vue 2024. 1. 27. 19:40
[Vue .js] Composition API : props, emits ์‚ฌ์šฉ๋ฒ•

composition API porps, emits ์‚ฌ์šฉ๋ฒ• Vue์— ์ถ”๊ฐ€๋œ composition API๋Š” Vue2์—์„œ์˜ option API๋ณด๋‹ค ์ปดํฌ๋„ŒํŠธ๋ฅผ ์กฐ๊ธˆ ๋” ๋…๋ฆฝ์ ์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ ๋ฆฌํ•˜๋‹ค.๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ(์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ๋Š” ๋ฐ์ดํ„ฐ ์ปจํ…Œ์ด๋„ˆ ์—ญํ• ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ์กฐ์ž‘, ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜์ง€ ์•Š๊ณ  ํ‘œํ˜„๋งŒ์„ ๋‹ด๋‹น)๋ฅผ ํ†ตํ•ด ์ปดํฌ๋„ŒํŠธ์˜ ์žฌ์‚ฌ์šฉ๋ฅ ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.props์™€ emits ์‚ฌ์šฉ๋ฒ• ์˜ˆ์‹œ์•„๋ž˜์˜ˆ์‹œ๋Š” App.vue ์•ˆ์—์„œ TodoList.vue ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. App.vue ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์ธ App.vue์—์„œ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์—๊ฒŒ datadls props๋ฅผ ๋‚ด๋ ค์ฃผ๊ณ  ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์—๊ฒŒ ์ด๋ฒคํŠธ์ธ emits์„ ๋ฐ›๋Š”๋‹ค. ํ•˜์œ„์ปดํฌ๋„ŒํŠธ(TodoList.vue)์˜ todoItemsPro..

Programming/Vue 2023. 12. 16. 16:44