๐ archive29 [Vue.js] ํจ์ํ ์ปดํฌ๋ํธ ์ด๋ชจ์ ๋ชจ Vue ํจ์ํ ์ปดํฌ๋ํธ์ ๋ํด์ ๐ ํจ์ํ ์ปดํฌ๋ํธ๋? ํจ์ํ ์ปดํฌ๋ํธ ๋ ์ํ์ ์ธ์คํด์ค๊ฐ ์กด์ฌํ์ง ์๋ ์ปดํฌ๋ํธ๋ฅผ ๋งํฉ๋๋ค. ์ปดํฌ๋ํธ๊ฐ ์ํ๊ฐ ์๊ณ ์ธ์คํด์คํ ๋์ง ์๊ธฐ ๋๋ฌธ์ this ์ปจํ ์คํธ ๊ฐ ์์ต๋๋ค. ์ํ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ด๊ธฐ ๋ ๋๋ง๊ณผ ์ ๋ฐ์ดํธ ์ ์ฑ๋ฅ ์ด์ ์ ๋ณผ ์ ์๋ค๋ ํน์ง์ด ์์ต๋๋ค. ๐ ํจ์ํ ์ปดํฌ๋ํธ ์ฌ์ฉํ๊ธฐ ์ดํ์ ์ฌ์ฉ๋๋ ์์ ๋ Vue 2.x ๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ฑ๋์์์ ์ ์ ๋ฐ๋๋๋ค. Vue 3 ๋ถํฐ๋ functional: true ์์ฑ๋์ ์ผ๋ฐ ํจ์๋ก ํจ์ํ ์ปดํฌ๋ํธ๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค. template ์ functional ์์ฑ ์ง์ ํ๊ธฐ SFC(single file component) ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด template ์ต์ ์ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค. ํจ์ํ ์ปดํฌ๋ํธ @.. 2022. 2. 20. [Vue.js] v-deep ์์ฑ์ ๋ํด์ vue ์์ v-deep ์ด๋? ๐ ์ปดํฌ๋ํธ์ scoped ์ ์ธ ์ฌ๋ด์์ vuetify ๋ก ๊ตฌ์ฑ๋ ์ผ๋ถ ํ๋ฉด์ ๋ค๋ฃฐ ์ผ์ด ์๊ฒผ๋๋ฐ vuetify ์์ ์ ๊ณต๋๋ ์ปดํฌ๋ํธ์ ์คํ์ผ ์ง์ ์ด ๋ป๋๋ก ๋์ง ์์ ๋๊ฐ ๋ฐ์ํ๊ณค ํฉ๋๋ค. ์ด๋ด ๋ ๋ค์๊ณผ ๊ฐ์ด scoped ์ ์ธ ์์ด ์คํ์ผ์ ๋ฎ์ด ์์ฐ๋ฉด ํด๊ฒฐ๋๋ ๊ฒฝ์ฐ๋ ์์ง๋ง ์ด ๊ฒฝ์ฐ ์ ์ญ์ ์ผ๋ก ํด๋น ์คํ์ผ์ด ์ํฅ์ ์ฃผ๊ธฐ ๋๋ฌธ์ ์ข์ง ์์ ๋ฐฉ๋ฒ์ ๋๋ค. // BAD ! // #2 // #3 sass ์ ๊ฐ์ ์ผ๋ถ CSS ์ ์ฒ๋ฆฌ ํ๊ฒฝ์์๋ >>> ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ๋์ํ์ง ์์ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ์๋ ๋๋ฒ์งธ๋ ์ธ๋ฒ์งธ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค. ๐ v-deep ์ ์ด์ฉํด์ v-html ์คํ์ผ ๋ค๋ฃจ๊ธฐ v-html ๋ก ์ ์ธ๋ HTML ๋งํฌ์ ์ scoped ์คํ์ผ ์ ์ฉ์ด ์๋ฉ๋๋ค... 2022. 2. 20. [Vue.js] mixin ์ฝ๋ ์คํ์ผ ๊ฐ์ด๋ Vue mixin ์ฌ์ฉ ์ ์ถ์ฒํ๋ ์ฝ๋ ์คํ์ผ ๐ mixin ์ฌ์ฉ ์ ์ฝ๋ ์คํ์ผ์ด ์ค์ํ ์ด์ ? ํ์ฌ์์ ๊ธฐ์กด ์์ค์ฝ๋๋ฅผ ๋ถ์ํ๋ฉฐ ๊ฐ์ฅ ํ๋ค์๋ ๋ถ๋ถ์ mixin ์ฌ์ฉ๊ณผ ๊ด๋ จ๋ ๊ฒ์ด์์ต๋๋ค. ๋ณ๋ค๋ฅธ ์ฝ๋ ์ปจ๋ฒค์ ์์ด mixin ์ ์ฌ์ฉํ๋ฉด ๋๊ท๋ชจ ์๋น์ค์์ ํด๋น ์์ค๊ฐ ์ด๋ ๋ชจ๋์ ํฌํจ๋ ๊ฒ์ธ์ง ํ์ ์ด ํ๋ค๊ฒ ๋ฉ๋๋ค. ์ด์ ์ด๋ป๊ฒ ํ๋ฉด ์ฝ๋ ๋ถ์์ด ์ฉ์ดํ ๋ฐฉ๋ฒ์ผ๋ก mixin ์ ์ฌ์ฉํ ์ ์์์ง ๊ณ ๋ฏผ์ด ํ์ํ์ต๋๋ค. ๐ Vue ์คํ์ผ ๊ฐ์ด๋์์ ์ ์ํ๋ ๋ฐฉ๋ฒ const myAwesomeMixin = { methods: { $_myAwsomeMixin_update: function () { /** ... */ } } } Vue ์คํ์ผ ๊ฐ์ด๋ ์์๋ ์์ ๊ฐ์ด mixin ์ ์ฌ์ฉ์์ ์ ํ๋กํผํฐ๋ $_ ๋ผ.. 2022. 2. 20. [Vue.js] v-model ์์ฑ๊ณผ @Model ๋ฐ์ฝ๋ ์ดํฐ์ ๊ดํด์ Vue ์ v-model ์ ๋ํด์ ์์๋ณด์ ๐ v-model ์ด๋? v-model ์ Vue ์์ ์๋ฐฉํฅ ๋ฐ์ธ๋ฉ์ ์ฌ์ฉํ ์ ์๋ ๋๋ ํฐ๋ธ์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก form ์์๋ค์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ์ด๋ฅผ ํตํด ํ์ฌ ์ ๋ ฅ๋ form ์์ ๊ฐ์ ๋๊ธฐ์ ์ผ๋ก ์์ฝ๊ฒ ๋ค๋ฃฐ ์ ์๋๋ก ํด์ค๋๋ค. ๐ v-model ์ ์ฌ์ฉ ์์ ๐ v-model ๊ณผ ํจ๊ป ์ฌ์ฉํ ์ ์๋ ์์์ด v-model ๊ณผ ํจ๊ป ์ฌ์ฉํ ์ ์๋ ์์์ด(modifier) ๊ฐ 3๊ฐ์ง ์กด์ฌํฉ๋๋ค. ๊ฐ๊ฐ์ ์์์ด์ ๋ํด์ ๊ฐ๋จํ ์์์ ํจ๊ป ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. .lazy .lazy ์์์ด๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ change ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋ ๊ฐ์ ๋๊ธฐํ๊ฐ ์ด๋ฃจ์ด์ง๋๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์ ์์ ์ ๊ฒฝ์ฐ ์ฒซ๋ฒ์งธ input ์์์์ focus out ๋ ๊ฒฝ์ฐ์.. 2022. 2. 20. [Vue.js] Vue ์์ ๋น๋๊ธฐ ์์ฒญ์ ์ธ์ ํ๋ ๊ฒ์ด ์ข์๊น? ๋น๋๊ธฐ ์์ฒญ์ผ๋ก ์ํ๋ฅผ ์ด๊ธฐํํ ๋ ์ด๋ค ๋ผ์ดํ์ฌ์ดํด์ ์ฌ์ฉํ ๊น? ๐ ๋น๋๊ธฐ ์์ฒญ์ ์ํ ์ต์ ์ ๋ผ์ดํ์ฌ์ดํด์? Vue ๋ฅผ ์ฌ์ฉํ๋ฉด์ ํญ์ ๊ณ ๋ฏผํ์์ต๋๋ค. ๋น๋๊ธฐ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ๋ ์ด๋ค ๋ผ์ดํ์ฌ์ดํด ํ ์์ ์ด๋ฅผ ์ฒ๋ฆฌํด์ผ ํ ๊น? ๋ง์ Vue ์ฌ์ฉ์๋ค์ด created ์์ ์ด๋ฅผ ์ฒ๋ฆฌํ์ฌ์ ์ ๋ํ ๋ง์ฐํ ์ด๋ฅผ ๋ฐ๋๋๋ฐ Vue ์ ๋ผ์ดํ์ฌ์ดํด์ ์ ๋ฆฌํ๋ฉด์ ์ด์ ๋ํ ๊ตฌ์ฒด์ ์ธ ๊ทผ๊ฑฐ๋ฅผ ์ฐพ๊ณ ์ถ์์ต๋๋ค. ์ฐพ์๋ณด๋ ์ด๊ฒ ์ ๋ต์ด๋ค! ํ๋ ๊ฑด ์์์ง๋ง ๊ทธ์ค ๊ฐ์ฅ ๋ฉ๋์ด ๋ ๋งํ ๊ทผ๊ฑฐ๋ฅผ ๊ฐ์ง๋ ์๋ฃ๋ฅผ ์ฐพ์์ต๋๋ค. ๐ Vue ์ฌ์ฉ์๋ค์ ๋ณดํธ์ ์ธ ์๊ฒฌ ํด์ธ์ ๋ค๋ฅธ ๊ฐ๋ฐ์๋ถ๋ ์ ์ ๊ฐ์ ๊ณ ๋ฏผ์ ํ์ จ๊ณ ๋ค์๊ณผ ๊ฐ์ ๊ทผ๊ฑฐ๋ก created ํ ์ ์ฌ์ฉํ์ต๋๋ค. beforeCreate, created, beforeMount ์ด๋์์ ํธ.. 2022. 2. 20. Vue.js ํด๋์ค์ ์คํ์ผ ๋ฐ์ธ๋ฉ ์ ์ฉํ๊ธฐ ๐ ํ๊ณ ์ถ์ ๊ฒ ๊ต๋ด ํ๊ธฐ๋ง ์ผํ๋ชฐ ๊ตฌํ ๊ณผ์ ์งํ ๋์ค ์ฅ๋ฐ๊ตฌ๋ ๊ธฐ๋ฅ์์ ์ํ์ ์ํ์ ๋ฐ๋ผ ๊ตฌ๋งค ๊ฐ๋ฅ ์ ๋ฌด๋ฅผ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ฃผ๋๋ก ํ์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ฐ๋ฐํ ํ ์คํธ๋ ์๋ฏธ์๋ ์ ๋ณด๋ฅผ ์ ๋ฌํ๊ธฐ ์ข์ง ๋ชปํ๋ค ์๊ฐํด ์ํ๋ณ๋ก ์คํ์ผ์ ์ ์ฉํ๋ ๊ฒ์ ๊ณ ๋ คํ๋๋ฐ Vue.js ์์๋ ๋์ ํด๋์ค ๋ฐ ์คํ์ผ ๋ฐ์ธ๋ฉ ์ ์ง์ํด์ฃผ๊ณ ์์ด์ ์ด๋ฅผ ์ ์ฉํด๋ดค์ต๋๋ค. ๐ ํด๋์ค์ ์คํ์ผ ๋์ ๋ฐ์ธ๋ฉ Vue.js ์์๋ ๋ฐ์ดํฐ๋ฅผ ๋์ ์ผ๋ก ๋๋๋งํ๊ธฐ ์ํด v-bind ๋ฅผ ์ง์ํ๊ณ ์์ต๋๋ค. ๋ฐ๋ผ์ ํน์ ์ปดํฌ๋ํธ์ ์คํ์ผ ํน์ ํด๋์ค๋ฅผ ๋์ ์ผ๋ก ํ ๋นํด์ฃผ๊ธฐ ์ํด์๋ ํด๋น ๊ธฐ๋ฅ์ ํ์ฉํ๋ฉด ๋ฉ๋๋ค. ํฌ๊ฒ ๊ฐ์ฒด๋ฅผ ํตํด ์ง์ ํ๋ ๋ฐฉ๋ฒ๊ณผ ๋ฐฐ์ด์ ํตํด ์ง์ ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋๋๊ฒ ๋๋๋ฐ ํด๋์๋ฅผ ๋์ ์ผ๋ก ํ ๋นํ๊ธฐ ์ํ ์ํ ์ฝ๋๋ฅผ ์ดํด๋ณด๊ณ ์ด๋ฒ.. 2021. 3. 2. ์ด์ 1 2 3 4 5 ๋ค์