Web/Vue.js

Vue .js ๊ธฐ๋ณธ ๋ฌธ๋ฒ• ํ•œ ๋ฒˆ์— ์ •๋ฆฌํ•˜๊ธฐ

ghtis1798 2021. 5. 22. 20:51

๐Ÿ”ธVue ์ธ์Šคํ„ด์Šค ์ƒ์„ฑํ•˜๊ธฐ

Vue ์ธ์Šคํ„ด์Šค ์˜ต์…˜

  1. el
  2. data
  3. methods
  4. computed
  5. watch

{{}} → property, mustache tag

ํ‘œ๊ธฐ๋ฒ• 3๊ฐ€์ง€

  1. ์ผ€๋ฐฅ ํ‘œ๊ธฐ๋ฒ• : font-size
  2. ์นด๋ฉœ ํ‘œ๊ธฐ๋ฒ• : fontSize
  3. ํŒŒ์Šค์นผ ํ‘œ๊ธฐ๋ฒ• : FontSize

ํ‚ค ์ˆ˜์‹์ž

<input v-on:keyup.ํ‚ค์ˆ˜์‹์ž="๋ฉ”์†Œ๋“œ๋ช…">
<button v-on:click="countUp(3)">3์”ฉ์ฆ๊ฐ€</button>

ํ‚ค ์ˆ˜์‹์ž์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ๋“ค์ด ์žˆ๋‹ค.

  • .enter
  • .tab
  • .delete
  • .esc
  • .space
  • .up
  • .down
  • .left
  • .right

์‹œ์Šคํ…œ ์ˆ˜์‹์ž ํ‚ค

ํ•ด๋‹น ์‹œ์Šคํ…œ ํ‚ค์™€ ๋™์‹œ์— ๋‹ค๋ฅธํ‚ค๊ฐ€ ๋ˆŒ๋ ธ์„ ๋•Œ๋งŒ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•จ

  • .ctrl
  • .alt
  • .shift
  • .meta (Windows๋Š” Windows ํ‚ค, maxOS๋Š” command ํ‚ค

๐Ÿ”ธ v-test, {{ }}

๐Ÿ”ธ v-bind

์†์„ฑ์„ Vue ์ธ์Šคํ„ด์Šค์˜ data๋กœ ์ง€์ •

๐Ÿ”ธ v-model

  • ํผ ์ž…๋ ฅ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ฒฐ ↔ ์–‘๋ฐฉํ–ฅ ๋ฐ”์ธ๋”ฉ

๐Ÿ”ธ v-on

  • ์ด๋ฒคํŠธ์™€ ๋ฉ”์†Œ๋“œ๋ฅผ ์—ฐ๊ฒฐ
  • ๋ฉ”์†Œ๋“œ๋Š” Vue ์ธ์Šคํ„ด์Šค์— methods ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด์„œ ์ƒ์„ฑ
  • el๋Š” ์–ด๋–ค HTML๊ณผ ์—ฐ๊ฒฐํ• ๊นŒ?
  • data๋Š” ์–ด๋–ค ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„๊นŒ?
  • methods๋Š” ์–ด๋–ค ๋ช…๋ น์ด ์žˆ์„๊นŒ์— ๋Œ€ํ•œ ๋‚ด์šฉ

๐Ÿ”ธ ์กฐ๊ฑด์— ๋”ฐ๋ฅธ ํ‘œ์‹œ : v-if

<ํƒœ๊ทธ๋ช… v-if="์กฐ๊ฑด1">์กฐ๊ฑด์ด true๋ผ๋ฉด ํ‘œ์‹œ</ํƒœ๊ทธ๋ช…>
<ํƒœ๊ทธ๋ช… v-else-if="์กฐ๊ฑด2">๊ทธ๋ ‡์ง€ ์•Š๊ณ , ์กฐ๊ฑด2๊ฐ€ true๋ผ๋ฉด ํ‘œ์‹œ</ํƒœ๊ทธ๋ช…>
<ํƒœ๊ทธ๋ช… v-else>๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํ‘œ์‹œ</ํƒœ๊ทธ๋ช…>

v-if์™€ v-show

v-if๋Š” ํƒœ๊ทธ์˜ true, false์— ๋”ฐ๋ผ HTML ํƒœ๊ทธ๋ฅผ ์ƒ์„ฑ, ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค. v-show๋Š” ํƒœ๊ทธ๋ฅผ ๋ณด์ด๊ฒŒ ํ•˜๊ฑฐ๋‚˜ ์‚ฌ๋ผ์ง€๊ฒŒ ํ•  ๋ฟ, ์‹ค์ œ HTML ํƒœ๊ทธ ์•ˆ์—๋Š” ์กด์žฌํ•˜๋Š” ์ฐจ์ด์ ์ด ์žˆ๋‹ค. ๋˜ํ•œ v-show๋Š” v-else์˜ ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

๐Ÿ”ธ ๋ฐ˜๋ณต ํ‘œ์‹œ: v-for

<ํƒœ๊ทธ v-for="๋ณ€์ˆ˜ in ๋ฐฐ์—ด">๋ฐ˜๋ณตํ•˜๋Š” ๋ถ€๋ถ„</ํƒœ๊ทธ>
<ํƒœ๊ทธ v-for="๋ณ€์ˆ˜ in ์ตœ๋Œ€๊ฐ’">๋ฐ˜๋ณตํ•˜๋Š” ๋ถ€๋ถ„ </ํƒœ๊ทธ>
<ํƒœ๊ทธ v-for="(๋ณ€์ˆ˜, ์ธ๋ฑ์Šค) in ๋ฐฐ์—ด">๋ฐ˜๋ณตํ•˜๋Š” ๋ถ€๋ถ„</ํƒœ๊ทธ>

๐Ÿ”ธ v-for์™€ v-if

<ํƒœ๊ทธ๋ช… v-for="๋ณ€์ˆ˜ in ๋ฐฐ์—ด" v-if="์กฐ๊ฑด">์กฐ๊ฑด์„ ๋งŒ์กฑํ•  ๋•Œ๋งŒ ํ‘œ์‹œํ•˜๋Š” ๋ถ€๋ถ„</ํƒœ๊ทธ๋ช…>
<ํƒœ๊ทธ๋ช… v-for="๋ณ€์ˆ˜ in ๋ฐ˜๋ณตํ•  ํšŸ์ˆ˜" v-if="์กฐ๊ฑด">์กฐ๊ฑด์„ ๋งŒ์กฑํ•  ๋•Œ๋งŒ ํ‘œ์‹œํ•˜๋Š” ๋ถ€๋ถ„</ํƒœ๊ทธ๋ช…>
  • ์ค€๋น„๋œ ๋ฐ์ดํ„ฐ์˜ ํ‘œ์‹œ/๋น„ํ‘œ์‹œ๋ฅผ true/false๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์€ v-if๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŽธ๋ฆฌํ•˜๋‹ค.
  • ๋ฐ์ดํ„ฐ๋Š” Vue ์ธ์Šคํ„ด์Šค์˜ data:์— ์ค€๋น„ํ•œ๋‹ค.
  • ํ”„๋กœํผํ‹ฐ ๊ฐ’data: {myVisible:false}์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฒดํฌ๋ฐ•์Šค๋ฅผ ์ค€๋น„ํ•˜๋ฉด ์œ ์ € ์กฐ์ž‘์˜ ํ‘œ์‹œ/๋น„ํ‘œ์‹œ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

example

# v-if example
<p v-if="myVisible">์ฒดํฌ๋ฐ•์Šค๋Š” ON</p>

data:{
    myVisible:false
}
# v-if example2
<p v-if="myVisible">์ฒดํฌ๋ฐ•์Šค๋Š” ON</p>
<p v-else>์ฒดํฌ๋ฐ•์Šค๋Š” OFF</p>

data: {
    myVisible:false
}
# v-for example
<li v-for="item in myArray">{{item}}</li>

data: {
    myArray: ['์ฐ๋นต', '๋ฉ”๋ก ๋นต', 'ํฌ๋กœ์™€์ƒ']
}
# v-for example2
<li v-for="item in objArray">{{item.name}}</li>

data:{
    objArray: [
        {name:'์ฐ๋นต', price:1000},
        {name:'๋ฉ”๋ก ๋นต', price:1200},
        {name:'ํฌ๋กœ์™€์ƒ', price:1500}
    ]
}
# v-for example3
<li v-for="n in 10">{{ n }}</li>
# v-for example4
this.myArray.push(์ถ”๊ฐ€๋ฐ์ดํ„ฐ);
this.myArray.splice(์ง€์ •์œ„์น˜, 0, ์ถ”๊ฐ€๋ฐ์ดํ„ฐ);
this.myArray.splice(์ง€์ •์œ„์น˜, 1, ๋ณ€๊ฒฝ๋ฐ์ดํ„ฐ);
this.myArray.splice(์ง€์ •์œ„์น˜, 1);

ํ•ด๋‹น ๊ธ€์€ '๋ฐฑ๊ฒฌ๋ถˆ์—ฌ์ผํƒ€ Vue.js ์ž…๋ฌธ ๋„์„œ'๋ฅผ ์ฝ๊ณ  ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.

'Web > Vue.js' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Vue.js ํŠน์ง•  (2) 2021.05.19