vue create vue-practice
โ vue3 ๋ฒ์ ผ ์คํ, yarn
โserveโ : ๊ฐ๋ฐํ ๋ ํ์ํ ๊ฐ๋ฐ ์๋ฒ ์คํ
โbuildโ : ์ฝ๋๋ฅผ ์ค์ ํ๋ก๋ํธ ์ฝ๋๋ก ๋ณํํ ๋ ์ฌ์ฉ
โlintโ : es lint ์ ์ฉํ ๋,
vue-snippets
- vueinit (template, script, style ํ๊บผ๋ฒ์ ์์ ์ถ๋ ฅ)
๋ฌธ๋ฒ
data()
- html ํ๊ทธ๋ <template></template> ํ๊ทธ ์์ ๋ชจ์ ์์ฑํ๋ค.
- ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ ์, ๋์ ์ผ๋ก ์ฌ์ฉํ ๋ฐ์ดํฐ๋ฅผ html ํ๊ทธ์์ ์์ฑํ ์ ์๋๋ฐ, ์์ฑ ๋ฐฉ๋ฒ์ {{ data }} ์ด๋ค.
- input ํ๊ทธ์์ ์๋ฐฉํฅ ๋ฐ์ดํฐ ์์ฑ์ ํ ์ ์๋๋ฐ, v-model ์ด๋ผ๋ ํ๋กํผํฐ๋ฅผ ์ฌ์ฉํ๊ณ value๊ฐ์ โdataโ ์ด๋ค.
- ๋์ ๋ฐ์ดํฐ๋ฅผ html ์์ฑ์ ๋ฐ์ธ๋ฉ ํ ๊ฒฝ์ฐ์๋ ํญ์ v-bind: ํน์ :๋ฅผ ์์ฑํ์ฌ ๋ฐ์ธ๋ฉํ๋ค.
- <img v-bind:src=โimgSourceโ>
- <a :href=โnaverUrlโ>naver</a>
- ํด๋์ค๋ฅผ ๋์ ์ผ๋ก ์์ฑ ํ ์ ์๋ค.
- <h2 :class="{ red: food === 'apple', 'not-good': food === 'rice' }"> ์๋ ํ์ธ์ {{ food }} ์ ๋๋ค.</h2>
- v-if์ v-show์ ์ฐจ์ด
- if์ display๊ฐ false์ผ๋์, show์ display๊ฐ false์ผ๋๋ ์ฐจ์ด๊ฐ ์๋ค.
- v-show ํ๋กํผํฐ์ html ํ๊ทธ๊ฐ์ ํ์ธํด๋ณด๋ฉด style=โdisplay:none;โ ์ด ํ์ธ๋๋ค.(ํ๊ทธ๋ ์ฌ๋ผ์ง์ง์์.)
- v-for ๋ฐ๋ณต๋ฌธ์ ๋ฐฐ์ด์ mapping ํ ์ ์๋ค. ์ฌ์ฉํ ๋ v-for:โ(animal,index) in animalsโ ํ๋กํผํฐ๋ฅผ ์์ฑํด์ฃผ๊ณ , key๋ฐ์ธ๋ฉ์ ํด์ฃผ๋๋ฐ :key=โindexโ ์ ์์ฑํด์ค๋ค.
- v-if์ v-for๋ ํ๊ทธ ํ๊ฐ์์ ํจ๊ป ์ฌ์ฉํ๋ฉด ์๋๋ค. โ ๋ง์ฝ ์ฌ์ฉํ๊ณ ์ถ์ผ๋ฉด ๋ค๋ฅธ ํ๊ทธ(template ํ๊ทธ)๋ฅผ ์ฌ์ฉํ์ฌ ๋ถ๋ฆฌ์์ผ์ค๋ค.
methods
- methods ์์ ๋ฐ์ดํฐ ๋ณ์์๋ this๋ฅผ ๋ถ์ฌ์ค๋ค.
- Arrow function์ ์ฐ๊ฒ ๋๋ฉด, this๊ฐ ์ง์ญ๋ณ์๊ฐ ๋๊ธฐ๋๋ฌธ์ ๋ฐ์ดํฐ์ this ๋ฅผ ๊ฐ๋ฅดํค์ง ๋ชปํ๋ค. ๊ทธ๋์ ๋ฌด์กฐ๊ฑด ์ผ๋ฐํจ์๋ฅผ ์จ์ผํ๋ค.
- this๋ฅผ console.log๋ก ํ์ธํด๋ณด๋ฉด Proxy๋ผ๋ ๊ฐ์ฒด๊ฐ ํ์ธ์ด ๋๋ค. vue3์์ ์ ์ฉ๋ ์ฑ๋ฅ์ด ํฅ์๋ ๋ฐ์ดํฐ ์กฐํ ํค์๋์ด๋ค.
- ๋์ ์ธ value ํ๋ผ๋ฏธํฐ์ event๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๊ธฐ์ํด์๋ $event ($e ์๋,, ๋ฌด์กฐ๊ฑด $event)๋ฅผ ์ฌ์ฉํ๋ค.